0
我有一个maven多模块项目。简化pom.xml
(下full-build
)看起来像如下: -在maven并行版本的情况下执行maven ant-run插件
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<groupId>com.eros</groupId>
<artifactId>full-build</artifactId>
<version>0.001-SNAPSHOT</version>
<name>full-build</name>
<profiles>
<profile>
<id>build-only</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>../../main</module>
</modules>
</profile>
<profile>
<id>copy-only</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<!-- collector -->
<copy file="../collector-framework/collector/target/collector-${project.version}.jar"
tofile="./target/collector/collector-${project.version}.jar"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
简化pom.xml
内main
看起来象下面这样: -
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.eros</groupId>
<artifactId>main</artifactId>
<version>0.001-SNAPSHOT</version>
<packaging>pom</packaging>
<name>main</name>
<modules>
<module>collector-framework</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>[1.8,)</version>
<message>*** This project requires JDK 1.8/J2SE 8 or later. ***</message>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
每当我试着用mvn clean install -T 4
收集的框架来执行上述项目项目被跳过并且构建失败,出错
Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project full-build: An Ant BuildException has occured: Warning: Could not find file /Users/tuk/code/github/eros/main/collector-framework/collector/target/collector-0.001-SNAPSHOT.jar to copy.
[ERROR] around Ant part ...<copy file="../collector-framework/collector/target/collector-0.001-SNAPSHOT.jar" tofile="./target/collector/collector-0.001-SNAPSHOT.jar"/>... @ 4:143 in /Users/tuk/code/github/eros/main/full-build/target/antrun/build-main.xml
E如果我只是做mvn clean install
,东西可以正常工作。我认为这是因为在模块执行完成之前运行ant-run。有人可以让我知道我怎么才能让ant-run
等到主模块编译完成并行构建的情况下?
- Maven版本 - 3.5.0