Можно ли связаться с Maven central с помощью артефактов DevOps Azure от частного размещенного агента? - PullRequest
1 голос
/ 02 октября 2019

Я работаю из частной сети, пытаюсь построить трубопровод для проекта Maven. Для работы с инструментами в нашей частной сети я пытаюсь использовать Private Hosted Agent. Теперь я знаю, что существуют некоторые ограничения на доступ к Maven Central из нашей сети, обычно для этого мы используем прокси-сервер через Nexus.

С новой функцией Maven Upstream в артефактах Azure я подумал, что могу использовать это как прокси'.

К сожалению, сборка не удалась, похоже, она пытается напрямую связаться с Maven Central (не используя мой канал), что, естественно, не удается. Ниже моего вывода и настроек

My settings.xml

Pom.Xml, part1

Pom.xml part2

Yaml Pipeline

И, наконец, вывод моей сборки:

2019-10-02T07:27:06.0094285Z Task         : Maven
2019-10-02T07:27:06.0094336Z Description  : Build, test, and deploy with Apache Maven
2019-10-02T07:27:06.0094403Z Version      : 3.158.0
2019-10-02T07:27:06.0094449Z Author       : Microsoft Corporation
2019-10-02T07:27:06.0094522Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/maven
2019-10-02T07:27:06.0094582Z ==============================================================================
2019-10-02T07:27:06.8762822Z [command]C:\windows\system32\reg.exe query "HKLM\SOFTWARE\JavaSoft\Java Development Kit\1.8" /v JavaHome /reg:64
2019-10-02T07:27:06.8762932Z 
2019-10-02T07:27:06.8763016Z HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.8
2019-10-02T07:27:06.8763085Z     JavaHome    REG_SZ    C:\Program Files\Java\jdk1.8.0_221
2019-10-02T07:27:06.8763156Z 
2019-10-02T07:27:06.9319606Z [command]C:\windows\system32\cmd.exe /D /S /C "C:\DATA\Choco\lib\maven\apache-maven-3.6.1\bin\mvn.cmd -version"
2019-10-02T07:27:07.4696051Z Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T19:00:29Z)
2019-10-02T07:27:07.4700024Z Maven home: C:\DATA\Choco\lib\maven\apache-maven-3.6.1\bin\..
2019-10-02T07:27:07.4709043Z Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_221\jre
2019-10-02T07:27:07.4725586Z Default locale: en_US, platform encoding: Cp1252
2019-10-02T07:27:07.4726158Z OS name: "windows server 2016", version: "10.0", arch: "amd64", family: "windows"
2019-10-02T07:27:07.5446027Z SYSTEMVSSCONNECTION exists true
2019-10-02T07:27:07.7710829Z SYSTEMVSSCONNECTION exists true
2019-10-02T07:27:08.0375908Z ##[warning]The settings for the feed or repository already exists in the xml file.
2019-10-02T07:27:08.0492975Z SYSTEMVSSCONNECTION exists true
2019-10-02T07:27:08.0530287Z [command]C:\windows\system32\cmd.exe /D /S /C "C:\DATA\Choco\lib\maven\apache-maven-3.6.1\bin\mvn.cmd -f C:\DATA\Agent\_work\71\s\pom.xml -s C:\DATA\Agent\_work\_temp\settings.xml package"
2019-10-02T07:27:09.9877350Z [INFO] Scanning for projects...
2019-10-02T07:27:10.0851393Z [INFO] 
2019-10-02T07:27:10.0897285Z [INFO] ---------< com.ontestautomation.javafortesters:JavaForTesters >---------
2019-10-02T07:27:10.0941394Z [INFO] Building JavaForTesters 1.0-SNAPSHOT
2019-10-02T07:27:10.0942123Z [INFO] --------------------------------[ jar ]---------------------------------
2019-10-02T07:27:10.6741134Z Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
2019-10-02T07:27:31.8954116Z The process 'C:\DATA\Choco\lib\maven\apache-maven-3.6.1\bin\mvn.cmd' failed with exit code 1
2019-10-02T07:27:31.8954401Z [INFO] ------------------------------------------------------------------------
2019-10-02T07:27:31.8955258Z Could not retrieve code analysis results - Maven run failed.
2019-10-02T07:27:31.8955423Z [INFO] BUILD FAILURE
2019-10-02T07:27:31.8955503Z [INFO] ------------------------------------------------------------------------
2019-10-02T07:27:31.8955591Z [INFO] Total time:  21.842 s
2019-10-02T07:27:31.8955658Z [INFO] Finished at: 2019-10-02T07:27:31Z
2019-10-02T07:27:31.8955759Z [INFO] ------------------------------------------------------------------------
2019-10-02T07:27:31.8955928Z [ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6: Could not transfer artifact org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.36.215] failed: Connection timed out: connect -> [Help 1]
2019-10-02T07:27:31.8956093Z [ERROR] 
2019-10-02T07:27:31.8958075Z [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
2019-10-02T07:27:31.8958201Z [ERROR] Re-run Maven using the -X switch to enable full debug logging.
2019-10-02T07:27:31.8958274Z [ERROR] 
2019-10-02T07:27:31.8958331Z [ERROR] For more information about the errors and possible solutions, please read the following articles:
2019-10-02T07:27:31.8958423Z [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
2019-10-02T07:27:33.1008909Z No test result files matching C:\DATA\Agent\_work\71\s\**\surefire-reports\TEST-*.xml were found, so publishing JUnit test results is being skipped.
2019-10-02T07:27:33.1015611Z ##[error]Build failed.
2019-10-02T07:27:33.1185161Z ##[section]Finishing: Maven ```


Anyone any ideas?

Thanks!

1 Ответ

0 голосов
/ 03 октября 2019

Можно ли связаться с Maven central с помощью артефактов DevOps Azure от частного размещенного агента?

Ответ должен быть да.

Причина, по которой он до сих пор напрямую достигает Maven Central, заключается в том, что все файлы pom наследуются от maven super POM :

http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html

, который содержитэта запись:

<repositories>
    <repository>
        <id>central</id>
        <name>Central Repository</name>
        <url>http://repo.maven.apache.org/maven2</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

Таким образом, мы можем перезаписать его в вашем pom с помощью артефактов DevOps Azure:

<repositories>
    <repository>
        <id>central</id>
        <url>https://pkgs.dev.azure.com/xxx/xxx</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>https://pkgs.dev.azure.com/xxx/xxx</url>
        <releases><enabled>false</enabled></releases>
    </pluginRepository>
</pluginRepositories>

Или вы можете использовать maven Mirrors to длязамените определенный репозиторий своим собственным внутренним репозиторием.

Проверьте более подробную информацию об этой проблеме, пожалуйста, проверьте этот билет .

Кроме того, вы также можете установить Прокси в вашем пом.

Надеюсь, это поможет.

...