WebLogic客户端jar

6
我想使用Java和JMX来监控WebLogic。我需要使用WebLogic lib目录中提供的wlclient.jar。
是否有任何Maven仓库可以用来下载wlclient.jar? 我找到的唯一方法是手动将jar文件导入我的存储库,但这对我来说不是一个选项。

我从未使用过它,但你可以尝试使用Oracle Maven仓库:https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle - Slettal
2个回答

5
另一种选择是创建一个项目内部存储库。这将使您的项目真正具有可移植性。这种方法类似于A. Di Matteo提到的“使用系统范围的依赖项”,但它具有额外的好处,即能够使用任何范围(而不仅仅是“系统”)。
我和你遇到了同样的问题,使用了一个在Maven中心不存在的jar文件,在探索了所有可能的选项之后,我选择了项目内部存储库,因为它比系统范围的依赖项更好,因为它可以自由选择范围。
操作步骤如下:
1. 在您的项目中创建一个名为“lib”的子目录 2. 将此lib作为存储库添加到您的pom中
<repositories>
    <repository>
        <id>lib</id>
        <name>In Project Repo</name>
        <url>file://${basedir}/lib</url>
    </repository>
</repositories>
  1. 将该工件安装到您的lib目录中:

mvn install:install-file -Dfile=myArtifact.jar -DgroupId=x.y.z -DartifactId=${artifactId} -Dversion=${version} -Dpackaging=jar -DgeneratePom=true

  1. 最后像使用任何其他依赖项一样使用该依赖项
<dependencies>
    ....
    <dependency>
        <groupId>x.y.z</groupId>
        <artifactId>${artifactId}</artifactId>
        <version>${version}</version>
    </dependency>
</dependencies>

3
不错的方法。我会改进它,将install:install-file步骤移到POM中,在一个只有在存储库中缺少文件并且在这种情况下将在验证阶段运行install-file目标的配置文件中激活。因此,一切都将自动化,而且更具可移植性。 - A_Di-Matteo

3
如果在任何Maven仓库中都找不到jar包,则根据您的需求执行以下任一操作:
内部Maven仓库: 如果您没有内部仓库(如Artifactory或Nexus),通常用作公司内部Maven缓存/代理/控制点,但也可以选择安装并在本地运行。然后,您可以将库上传到其中,并提供Maven GAV(GroupId,ArtifactId,Version),并使Maven指向它作为仓库(对于您自己,如果有CI服务器,则对于您的同事)。然后,您可以将该库添加为标准Maven依赖项。此解决方案设置时间较长,但可维护性更好。
在本地缓存中安装库: 您可以使用Maven Install插件将库安装到本地缓存中,如此官方example所示。基本上,您可以运行以下命令:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=path-to\wlclient.jar -DgroupId=weblogic -DartifactId=wlclient -Dversion=1.0.0 -Dpackaging=jar

它将使用标准的Maven GAV将库复制到您的本地Maven缓存中。但是,如上所述,您应确保在任何CI服务器和任何团队成员机器上复制相同的设置。然后,您可以将该库添加为标准的Maven依赖项。 这种解决方案具有更快的设置时间,但可维护性较低。
但两种解决方案都会影响构建的可移植性(如果有人试图在公司网络或团队之外构建它,则构建将失败)。
使用系统范围的依赖项 您可以将jar作为项目的一部分,并通过该依赖项的system范围指向它。
<dependency>
  <groupId>weblogic</groupId>
  <artifactId>wlclient</artifactId>
  <version>1.0.0</version>
  <systemPath>${basedir}/path/to/library/wlclient-1.0.0.jar</systemPath>
  <scope>system</scope>
</dependency>

你应该重命名jar文件,以符合Maven的规范。
这个解决方案更加便携,需要的设置更少,但是它需要维护,并且需要将相关库作为版本化项目的一部分进行提交(有些人可能对此做法强烈反对)。

1
你知道是否有任何已经发布wlclient.jar的Maven公共仓库吗? - Peter Penzov
找不到其他的,除了Slettal建议的那一个,但是根据那篇帖子的评论,它似乎并不像应该使用的那么容易。 - A_Di-Matteo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接