为什么 Artifactory Maven 和 Oracle 无法通信?

Why Artifactory Maven and Oracle fail to communicate?

我希望这个答案能成为如何连接 Maven、Oracle 和 Artifactory 的通用指南,并成为网上最有用的网页。很可能这个问题会被标记下来,但我只是放弃了 Maven,Artifactory 和 Oracle。

我是 运行 windows 7-64,作为 Oracle jdev 的一部分安装了 maven。公司在 vpn 网络上设置了 Artifactory 和 运行....但有些地方不对。

遵循以下简单说明: http://biemond.blogspot.co.uk/2013/07/maven-support-in-weblogic-jdeveloper.html

第一条指令失败:

错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file are missing or invalid -> [Help 1]

添加

-Durl=file://C:\Users\{user}\.m2

似乎将该工件安装到我的本地 .m2 存储库

C:\Users\{user}\.m2\com\oracle\maven\oracle-maven-sync.1.2-0-0

但只是看起来,然后我在该教程中排名第 3 位:

报错:

[ERROR] Error resolving version for plugin 'com.oracle.maven:oracle-maven-sync' from the repositories [local (C:\Users\{user}\.m2), central (http://repo.maven.apache.org/maven2)]: Plugin not found in any plugin repository -> [Help 1]

所以插件安装失败?

Oracle Maven 存储库受密码保护,因为奇怪的 oracle 想法,Artifactory 有外部中央和 Oracle 存储库为什么让它镜像所有内容会阻止 Maven 甚至找到部署模块?

这是我的 settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <servers>
    <server>
      <username>user</username>
      <password>xxx</password>
      <id>central</id>
    </server>
    <server>
      <username>user</username>
      <password>xxx</password>
      <id>snapshots</id>
    </server>
  </servers>

  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release-local</name>
          <url>http://art.host.ru:8081/artifactory/libs-release-local</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot-local</name>
          <url>http://art.host.ru:8081/artifactory/libs-snapshot-local</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>plugins-release-local</name>
          <url>http://art.host.ru:8081/artifactory/plugins-release-local</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>plugins-snapshot-local</name>
          <url>http://art.host.ru:8081/artifactory/plugins-snapshot-local</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
    <profile>
      <id>oracle-maven</id>
      <properties>
        <oracle-maven-sync.oracleHome>C:\Oracle\Middleware\Oracle_Home</oracle-maven-sync.oracleHome>
        <oracle-maven-sync.testOnly>false</oracle-maven-sync.testOnly>
        <oracle-maven-sync.failOnError>false</oracle-maven-sync.failOnError>
      </properties>      
    </profile>  

  </profiles>
  <activeProfiles>
    <activeProfile>oracle-maven</activeProfile>
  </activeProfiles>
</settings>

好吧,我想你只是听错了指南。一些随机 Maven 插件的所有这些手动部署都是错误的。 只需按照 the Artifactory User Guide 中简单而详细的说明进行操作即可。

对大多数工件使用http://jcenter.bintray.com

对于 Oracle:oracle-maven-sync 插件 oracle instructions

  • $ORACLE_HOME = 其中 jdev 12.1.2
  • $M2_HOME = $ORACLE_HOME/oracle_common/modules/org.apache.maven_3.0.4
  • $M2 = $M2_HOME/bin(添加到 $PATH)
  • artifactory->home->maven设置生成settings.xml放到~/.m2
  • 在 artifactory 中创建本地存储库"oracle-local-12.1.2"
  • settings.xml 添加以下代码

    <profiles>
    <profile>
      <properties>
        <oracle-maven-sync.oracleHome>$ORACLE_HOME</oracle-maven-sync.oracleHome>
        <oracle-maven-sync.testOnly>false</oracle-maven-sync.testOnly>
        <oracle-maven-sync.failOnError>false</oracle-maven-sync.failOnError>
        <oracle-maven-sync.serverId>oracle-local-12.1.2</oracle-maven-sync.serverId></properties>
    
  • artifactory -> 用户名(右上角) -> 输入pass -> 解锁 -> забрать 加密密码(复制)

  • 为所有
  • 添加 settings.xml 的通行证
  • 转到 $ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.2(使用 cmd/terminal)
  • mvn deploy:deploy-file -DpomFile=oracle-maven-sync-12.1.2.pom -Dfile=oracle-maven-sync-12.1.2.jar
  • 测试它:mvn com.oracle.maven:oracle-maven-sync:help
  • 推送工件 oracle 12.1.2 mvn com.oracle.maven:oracle-maven-sync:push
  • 长时间等待(~3000 个工件 > 2 小时)
  • 完成回购设置并在 settings.xml

问题出在 -Dmaven.repo.local

不提供参数。