在 Jbossas OpenShift 应用程序中包含自定义 JAR

Including a custom JAR in Jbossas OpenShift app

我一直在尝试按照说明在 openshift 上的 Java 应用程序中包含自定义 JAR 文件。这是我正在遵循的说明 link https://developers.openshift.com/en/jbossas-dependencies.html。这些告诉您将所需的 JAR 文件包含在 src/main/webapp/WEB-INF/lib/ 文件夹中。

不幸的是,部署的代码报告编译错误,因为它没有在其构建路径中包含 JAR 文件。

我看过少数其他帖子(例如 Maven build not finding custom jar already installed in local openshift project repo) about this problem that suggest a solution that involves installing the custom JAR file into the Maven repo and the referencing it through the pom.xml file. But they all refer to broken links on the OpenShift developer portal. In particular, this one https://www.openshift.com/kb/kb-e1040-using-your-own-jar-files-in-a-java-application 经常出现。但是 link 已损坏,所以它们都缺少关键上下文,或者也许它们'重新过时了。无论哪种方式,如果没有 links.

,我都在努力跟随他们

编辑

按照下面 Michael Dibbets 提供的 link 到我上面提到的损坏的 link 的存档副本后,我找到了更多说明。如果您遵循 link,您会看到他们告诉我使用 pre_build 文件将我的 Jar 文件安装到 Maven 存储库。不幸的是,在 repo 中引用 Jar 文件的说明中给出的地址不正确。经过一些摆弄后,我设法通过使用以下指令使其工作 [mvn install:install-file -Dfile=../56e1739d0c1e665da800001f/app-root/repo/Test.jar -DgroupId=org.tfl -DartifactId =测试-Dversion=1.0-Dpackaging=jar]。这串数字是您可以从 Web 控制台或其他地方获得的应用程序名称。对于如此简单的事情,它就像泥浆一样清晰,Openshift 的相关信息似乎是绝对不正确的(历史和现在的信息)。

正确的方法是使用 EAR 项目,但您也可以创建项目存储库,这正是您所要求的。

1: 在项目的根目录下创建一个名为 repo.

的目录

2:使用 maven 安装文件安装你的 jar,并将 -DlocalRepositoryPath=path-to-specific-local-repo 设置为你的 repo 目录。例如:

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 文件。之后它应该可以很好地部署到 OpenShiftHeroku.

只需在 \src\main\webapp\WEB-INF\ 下创建一个 lib 文件夹并将自定义 jar 文件复制到 lib 文件夹。终于这样了

\src\main\webapp\WEB-INF\lib\your-custom-jar.jar