Java maven:从生成的源代码创建一个jar,并在编译之前将其作为依赖项添加

Java maven:从生成的源代码创建一个jar,并在编译之前将其作为依赖项添加,java,maven,Java,Maven,我希望包含一个jar文件,而不是添加源代码。最终的结果就像添加了一个依赖项,我的war文件在WEB-INF/lib中得到了一个额外的jar,而不是WEB-INF/classes中的额外类 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId>

我希望包含一个jar文件,而不是添加源代码。最终的结果就像添加了一个依赖项,我的war文件在WEB-INF/lib中得到了一个额外的jar,而不是WEB-INF/classes中的额外类

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.8</version>
          <configuration>
              <sources>
                  <source>target/generated-sources/wsimport</source>
              </sources>
          </configuration>
          <executions>
              <execution>
                  <phase>generate-sources</phase>
                  <goals>
                      <goal>add-source</goal>
                  </goals>
              </execution>
          </executions>
        </plugin>

org.codehaus.mojo
构建助手maven插件
1.8
目标/生成的源/wsimport
生成源
添加源
我的想法是:

步骤1)生成源

步骤2)从目标/生成的源/wsimport生成jar文件

步骤3)在编译之前将其安装到本地存储库中(mvn安装:安装文件-Dfile=MyWsImport.jar)

步骤4)添加MyWsImport.jar依赖项


步骤5)使用工作模块编译上文Peter Butkovic提到的


4.0.0
com.google.appengine.gcl
gcl-11
0.0-快照
聚甲醛
rs
ws

虽然这是可能的,但你似乎让自己的生活变得非常困难。在maven项目中,传统的做法是每个工件有一个项目,只需为要构建的jar创建一个新项目,并将其作为依赖项添加到war中,就会容易得多。你不想这样做是有原因的吗?2个项目是可以的,只要它对用户是透明的,这意味着他们可以像当前只添加源代码的设置那样进行maven编译。如果太难,我就坚持添加源代码:)只在单个项目上编译没有问题。请注意,在Maven中有依赖关系、继承性,但也有子模块。一旦你想让一个项目将其他项目作为子模块,你仍然可以构建这个项目来将所有的工作传播到它的子模块。只需谷歌一下,或者看看我现在在谷歌上搜索到的一个:是否尝试过模块,并且成功了:)
<?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.google.appengine.gcl</groupId>
    <artifactId>gcl-11</artifactId>
    <version>0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>rs</module>
        <module>ws</module>
    </modules>

</project>