我们可以在Nexus中代理一些公共Maven存储库中是否有JRE 1.6?
如果没有,有人可以提供一个关于如何将JRE部署到Maven存储库的提示吗?
答案 0 :(得分:13)
这是我找到的解决方案:
修改你的pom.xml以在构建期间下载并解压缩依赖项(我将它绑定到“prepare-package”阶段)。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>oracle</groupId>
<artifactId>jre-win32</artifactId>
<version>1.6.0.23</version>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<!--<destFileName>optional-new-name.jar</destFileName>-->
</artifactItem>
<artifactItem>
<groupId>oracle</groupId>
<artifactId>jre-linux32</artifactId>
<version>1.6.0.23</version>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<!--<destFileName>optional-new-name.jar</destFileName>-->
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/wars</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
就是这样。 JRE将被下载并解压缩到 target \ alternateLocation文件夹。
如果您只想复制ZIP文件而不提取它们,则可以使用“复制”目标而不是“解压缩”。
答案 1 :(得分:1)
您的要求在某种程度上是有效的用例。但恕我直言,把它放入maven-repo并不是这样做的。
其他应用程序通过直接从提供程序获取可执行文件来实现此要求。例如,像Hudson / Jenkins这样的构建服务器需要在用户选择时下载Java / Maven,而AFAIR Jenkins则直接从Oracle站点下载它们。 (由于oracle要求您在下载之前登录,因此他们使用SSO机制)。 沿着这条道路的类似解决方案将适合您。
即使您在m2-repo中托管您的JRE,也存在某些安全问题。 JRE是一个敏感的计划。即使你说你从oracle托管了相同的JRE,我宁愿从oracle下载它。
答案 2 :(得分:-2)
Here您可以阅读如何将jar安装到maven仓库中。但是你为什么要在maven仓库中安装JRE jar?