OpenShift,Log4j2& Maven - 无法解决项目的依赖关系

时间:2016-10-25 18:01:20

标签: java maven openshift log4j2

我创建并运行了一个独立的Java程序,使用 Slf4j 通过 Log4j2 进行记录。日志记录按预期工作。

然后我将此功能添加到我正在 Eclipse IDE 中开发的现有(并且正在工作)的 OpenShift Java Web应用程序中。

我在 pom.xml

中添加了以下依赖项
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.7</version>
    </dependency>

我使用了一个简单的 log4j2.xml 配置文件,并在Java类中添加了一些日志记录代码。

我在本地运行了网络应用程序,日志工作正常。

然后我将 pom.xml log4j2.xml 移至Git临时区域并执行了提交和推送。这通常很好,没有问题。

这次我在对话框控制台窗口中收到以下错误消息:

[ERROR] Failed to execute goal on project testdb: Could not resolve dependencies for project testdb:testdb:war:1.0: Failure to find org.apache.logging.log4j:log4j-api:jar:2.7 in http://maven.repository.redhat.com/techpreview/all was cached in the local repository, resolution will not be reattempted until the update interval of eap has elapsed or updates are forced -> [Help 1]

似乎在 RedHat Maven存储库中没有 log4j-api版本2.7 。但我肯定不是第一个这样做的人,所以我怀疑存在一些潜在的错误。

有什么想法吗?任何帮助将不胜感激......

3 个答案:

答案 0 :(得分:0)

我目前的项目中有与RedHat Maven存储库相同的问题

为了排除由于当前项目的代码而导致的所有问题,我创建了一个新项目,并在index.html文件上应用了一点点更新(我只是添加了一个空格字符)。 然后,在“ git push ”命令之后,我在远程构建阶段获得了相同的错误,但这次是通过下载基本插件maven-clean-plugin :< / p>

remote: [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1 
or one of its dependencies could not be resolved: Failed to read artifact
descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1:
Failure to find org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1 in
http://mirror.ops.rhcloud.com/nexus/content/groups/public was cached in the
local repository, resolution will not be reattempted until the update
interval of nexus has elapsed or updates are forced -> [Help 1]

很明显,OPENSHIFT平台从今天起就存在一些问题。

答案 1 :(得分:0)

希望这是及时和有帮助的。我能够通过在OpenShift上删除〜/ .m2 / repository / path / to / your / dependency中的无效本地缓存依赖项来强制更新并解决此问题,然后启动另一个git push来触发maven构建。

答案 2 :(得分:0)

昨天,我尝试了这个,它对我有用:

在应用程序.openshift / markers目录中创建一个名为force_clean_build的空文件。提交文件并推送更改。这将删除.m2存储库并再次下载所有依赖项和插件。