我一直在尝试按照说明在openshift的Java应用程序中包含自定义JAR文件。这是指向https://developers.openshift.com/en/jbossas-dependencies.html之后的说明的链接。这些告诉您在src / main / webapp / WEB-INF / lib /文件夹中包含所需的JAR文件。
不幸的是,部署的代码报告了编译错误,因为它没有在其构建路径中包含JAR文件。
我已经看到了关于此问题的少量其他帖子(例如Maven build not finding custom jar already installed in local openshift project repo),这些帖子提出了一个解决方案,涉及将自定义JAR文件安装到Maven仓库并通过pom.xml引用它文件。但它们都是指OpenShift开发人员门户网站上的断开链接。特别是,这个https://www.openshift.com/kb/kb-e1040-using-your-own-jar-files-in-a-java-application出现了很多。但是链接被破坏了,所以他们都缺少关键的背景,或者他们可能已经过时了。无论哪种方式,我都努力在没有链接的情况下跟随他们。
修改
按照下面Michael Dibbets提供的链接到我上面提到的断开链接的存档副本后,我发现了更多说明。如果您按照链接,您可以看到他们告诉我使用pre_build文件将我的Jar文件安装到maven repo。不幸的是,在repo中引用Jar文件的说明中给出的地址是不正确的。经过一些小小的摆弄后,我设法通过使用以下指令使其工作[mvn install:install-file -Dfile = .. / 56e1739d0c1e665da800001f / app-root / repo / Test.jar -DgroupId = org.tfl -DartifactId = test -Dversion = 1.0 -Dpackaging = jar]。数字字符串是您可以从Web控制台或其他位置获取的应用程序名称。对于如此简单的事情而言,它就像泥巴一样清晰,并且关于它的开放式信息似乎绝对不正确(历史和现有信息)。
答案 0 :(得分:0)
执行此操作的正确方法是使用EAR
项目,但您也可以创建项目存储库,这就是您所要求的。
1:在名为repo
的项目根目录中创建一个目录。
2:使用maven install-file在你的repo目录中设置-DlocalRepositoryPath=path-to-specific-local-repo
来安装你的jar。 E.g:
mvn install:install-file -Dfile=path-to-your-artifact-jar
-DgroupId=your.groupId
-DartifactId=your-artifactId
-Dversion=version
-Dpackaging=jar
-DlocalRepositoryPath=path-to-specific-local-repo
3:修改你的pom文件以使用这个本地仓库:
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>
4:确保它在本地构建。您可能希望从本地.m2存储库中清除项目jar,然后使用mvn clean verify
构建项目,以确保.war文件正确构建。之后,它应该部署到OpenShift
或Heroku
。
答案 1 :(得分:0)
只需在\ src \ main \ webapp \ WEB-INF \下创建一个lib文件夹,然后将自定义jar文件复制到lib文件夹。最后它就像这样
\src\main\webapp\WEB-INF\lib\your-custom-jar.jar