我的情况是:
poms的例子:
父:
<groupId>mygroup</groupId>
<artifactId>myparent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
...
“插件”:
<parent>
<artifactId>myparent</artifactId>
<groupId>mygroup</groupId>
<version>1.0</version>
</parent>
<groupId>mygroup</groupId>
<artifactId>myplugin</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
...
“装载程序”:
<parent>
<artifactId>myparent</artifactId>
<groupId>mygroup</groupId>
<version>1.0</version>
</parent>
<groupId>mygroup</groupId>
<artifactId>myloader</artifactId>
<packaging>war</packaging>
<version>1.0</version>
...
现在,我需要生成jar “plugin”并在构建时将其复制到项目“loader”中的已定义目录。
这必须在eclipse本地工作,并在jenkins中自动构建。
有人知道我该怎么做吗?
答案 0 :(得分:2)
基本上它分四步解决:
我的“插件”项目中的pom.xml保持这样:
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<outputDirectory>${my.output.directory}</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>com.goldin.plugins</groupId>
<artifactId>maven-copy-plugin</artifactId>
<version>0.2.3.6</version>
<executions>
<execution>
<id>create-archive</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<resources>
<!-- Copy config properties -->
<resource>
<targetPath>${my.output.directory}</targetPath>
<directory>${project.basedir}/conf</directory>
<includes>
<include>*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
另一方面,我将项目设置为使用目录 $ {my.output.directory}
中的插件第1步:
第2步:
步骤3:在“构建选项”选项卡中,您可以配置此执行的详细信息。
对于jenkins,我创建了一个虚拟插件,仅用于测试。
答案 1 :(得分:0)
为插件运行maven install,将生成的jar放入本地maven仓库。然后在依赖项部分中指定插件作为依赖项。在这种情况下,即使这些项目是兄弟姐妹,它们也只是兄弟姐妹,因为父母在父母中运行mvn目标时指定构建顺序。如果您打算在那里使用它们,它们的实际构建工件必须包含在兄弟姐妹中。