【问题标题】:Create Jar file using maven Plugin使用 maven Plugin 创建 Jar 文件
【发布时间】: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


    【解决方案1】:

    我看到你尝试做一些奇怪的事情。

    你的projectB 有很多模块,所以你的projectA 应该依赖于这些模块。可能projecB 的模块具有jar 类型,因此您可以轻松依赖它而无需使用projectB 做魔术

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多