【发布时间】:2016-08-28 20:35:35
【问题描述】:
我在制作项目类型为 pom 的 JAR 文件并将此 jar 作为依赖项添加到其他项目中时遇到了一些问题。
我正在使用 maven 阴影插件来制作 JAR 。它编译得很好,但它在项目目标目录中创建了一个 jar 文件,而不是在 .m2 文件夹中。此外,当我提取文件时,它没有类和资源等
我有两个项目
1) 项目测试B 项目 B 是一个独立的项目,具有各种模块,如调度程序、服务、Web 模块,这些模块作为依赖项添加到其他项目中
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>TestProjectB</groupId>
<artifactId>ProjectTestB</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>classworlds:classworlds</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:*</exclude>
<exclude>*:xml-apis</exclude>
<exclude>org.apache.maven:lib:tests</exclude>
<exclude>log4j:log4j:jar:</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<modules>
<module>scheduler</module>
</modules>
</project>
2) 项目A
Project A 包含 ProjectB 和一些其他服务和业务类的依赖项。只有项目 A 包含将创建可执行 JAR 文件的主类
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>projectA</groupId>
<artifactId>projectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>TestProjectB</groupId>
<artifactId>ProjectTestB</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
所以问题是
1) 如果项目包是POM(项目B),如何制作包含所有类、资源等的jar?
2) 如何在 Project A 类路径中添加 Project B jar 文件以访问它的模块?
【问题讨论】:
标签: java maven spring-boot maven-2 maven-plugin