0

GoldenGate for Java 未安装在公共 Maven 存储库中。

如何设置我的 Maven 构建环境来处理 GoldenGate 库?

4

2 回答 2

2

这些库需要点击许可协议,可在此处下载:

http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html

Oracle GoldenGate Application Adapters无论你在哪个平台上工作,你都需要它。以下命令假定您已下载文件ggs_Adapters_Linux_x64.zip,版本 12.2.0.1。相应地调整您的版本号。

首先,提取所需的文件:

jar xvf ggs_Adapters_Linux_x64.zip ggs_Adapters_Linux_x64.tar
tar -zxvf ggs_Adapters_Linux_x64.tar ggjava/resources/lib/*

然后,使用install-plugin安装三个 jar 文件并适当设置版本和组信息。

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=ggjava/resources/lib/ggdbutil-12.2.0.1.0.012.jar -DgroupId=com.oracle.goldengate -DartifactId=ggdbutil -Dversion=12.2.0.1.0.012 -Dpackaging=jar
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=ggjava/resources/lib/gguserexitapi-12.2.0.1.0.012.jar -DgroupId=com.oracle.goldengate -DartifactId=gguserexitapi -Dversion=12.2.0.1.0.012 -Dpackaging=jar
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=ggjava/resources/lib/ggutil-12.2.0.1.0.012.jar -DgroupId=com.oracle.goldengate -DartifactId=ggutil -Dversion=12.2.0.1.0.012 -Dpackaging=jar

在您的 pom.xml 中,添加以下属性:

<properties>
    <goldengate.version>12.2.0.1.0.012</goldengate.version>
</properties>

以及这些依赖项:

    <dependency>
        <groupId>com.oracle.goldengate</groupId>
        <artifactId>ggdbutil</artifactId>
        <version>${goldengate.version}</version>
    </dependency>
    <dependency>
        <groupId>com.oracle.goldengate</groupId>
        <artifactId>gguserexitapi</artifactId>
        <version>${goldengate.version}</version>
    </dependency>
    <dependency>
        <groupId>com.oracle.goldengate</groupId>
        <artifactId>ggutil</artifactId>
        <version>${goldengate.version}</version>
    </dependency>
于 2016-03-31T20:49:37.863 回答
0

您可以像 Mark Harrison 建议的那样手动安装它们,但这只会将它们带到您的本地存储库。如果您要与其他人一起使用该代码库并希望避免每个人都必须这样做,您必须选择:

首先,建议安装一个 Maven 存储库管理器,例如 Nexus 或 Artifactory,然后将 jar 推送到那里。到达那里后,您只需配置本地 ~/.m2/settings.xml 即可从存储库管理器中提取工件。设置看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <profiles> 
    <profile>
      <repositories>
        <repository>
          <id>repo</id>
          <name>repo</name>
          <url>https://some.host.com/artifactory/repo</url>
        </repository>
      </repositories> 
      <pluginRepositories>
        <pluginRepository>
          <id>plugin-repo</id>
          <name>plugin-repo</name>
          <url>https://some.host.com/artifactory/repo</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
  <servers>
    <server>
      <id>artifactory</id>
      <username>user</username>
      <password>pass</password>
    </server>
  </servers>
</settings>

值得一提的是,这是每个 env 配置一次,每次将一个 jar 合并到项目中时都必须安装您使用的每个 3rd 方 jar。使用这种方法,当您有一个新的 3rd 方 jar 时,您只需通过其 Web UI 或使用命令将其部署到 repo 管理器:

mvn deploy:deploy-file -DgroupId=<group-id> \
  -DartifactId=<artifact-id> \
  -Dversion=<version> \
  -Dpackaging=<type-of-packaging> \
  -Dfile=<path-to-file> \
  -DrepositoryId=<id-to-map-on-server-section-of-settings.xml> \
  -Durl=<url-of-the-repository-to-deploy>

(更多细节在这里https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html

第二种方法是简单地添加指向 pom.xml 所在的相对路径的依赖项,如下所示:

<dependency>
  <artifactId>..</artifactId>
  <groupId>..</groupId>
  <scope>system</scope>
  <systemPath>${basedir}/lib/dependency.jar</systemPath>
</dependency>

更喜欢这个而不是安装的理由是再次方便共享此代码库的每个人。您只需将 jar 文件上传到您的代码仓库,并将依赖项指向该位置,无需安装/运行任何东西来编译项目。

于 2016-03-31T21:16:20.913 回答