以下是上下文:我正在使用 2个项目 - 两个独立包中的MAIN和TESTS类 。在我独特的pom.xml文件中,该文件与MAIN类在同一个包中,我使用以下插件添加了TESTS文件。目标:
到目前为止,我成功构建了1个jar文件 - 在python脚本中 - 包含MAIN和TESTS,在3个命名的插件和MAIN中的pom文件的帮助下 - 其中TESTS被添加为资源。 我的目标是从我刚构建的文件中构建 2个独立的jar文件 - MAIN和TESTS 。但我不知道如何。
修改
父模块的pom.xml:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- project coordinates -->
<groupId>com.xyz</groupId>
<artifactId>multi-app</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>app</module>
<module>util</module>
</modules>
第一个孩子模块
pom:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xyz</groupId>
<artifactId>multi-app</artifactId>
<version>1.0</version>
</parent>
<groupId>com.xyz</groupId>
<artifactId>util</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
第一个孩子类模块:
package com.xyz.util;
public class UserMsg {
public static String getMessage() {
return(" Hello World!");
}
}
第二个孩子模块pom:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xyz</groupId>
<artifactId>multi-app</artifactId>
<version>1.0</version>
</parent>
<groupId>com.xyz</groupId>
<artifactId>app</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>util</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
第二个孩子类模块:
package com.xyz;
import com.xyz.util.*;
public class App {
public static void main(String[] args) {
System.out.println(UserMsg.getMessage());
}
}
结果:
我在父目录中成功构建了两个jar文件。
此外,一个jar包含所有文件 - 来自两个模块中的任何一个,并且确保设置了依赖关系。
目标:
注意:当我在插件中添加依赖项或资源路径时,如下所示,它不起作用。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/../pathToNeededClassFiles</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
在我的项目上运行 mvn package -pl :app
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building app 1.0
[INFO] ------------------------------------------------------------------------
Downloading: https://repo.maven.apache.org/maven2/ com/xyz/multi-app/1.0/multi-app-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.110 s
[INFO] Finished at: 2017-01-11T11:29:27-07:00
[INFO] Final Memory: 11M/148M
[INFO]
[ERROR] Failed to execute goal on project app: Could not resolve dependencies for project com.xyz:app:jar:1.0:
Failed to collect dependencies at com.xyz:util:jar:1.0: Failed to read artifact descriptor for com.xyz:util:jar:1.0:
Could not find artifact com.xyz:multi-app:pom:1.0: in central (https://repo.maven.apache.org/maven2) -> [Help 1]
任何建议都将不胜感激。感谢