Maven 蚂蚁任务。传递 (pom) 依赖项和 https 问题
Maven ant task. Transitive (pom) dependencies and https issue
As you know, starting from 15 January 2020 Maven central repo requires HTTPS-only access. One of our projects is using Ant and Maven Ant Tasks(仅限依赖管理)。是的,我知道它已被弃用,但在旧的 ant 构建中使用 pom.xml 的另一个选项是什么?
如果依赖树包含一个 link 到 pom,Maven Ant 任务似乎有一个错误,它总是会通过 HTTP 访问(尽管本地配置 https://repo.maven.apache.org/maven2)。
关于如何解决该错误的任何想法?
P.S。是的,这是工作配置(即通过 HTTP 工作)和 pom file exists with the correct parameters.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>Test</artifactId>
<version>4.5-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
<version>8.4.5</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
build.xml的一部分
<artifact:dependencies filesetid="maven.classpath">
<pom file="../pom.xml" />
</artifact:dependencies>
部分输出
[artifact:dependencies] Downloading: com/vaadin/vaadin-client/8.4.5/vaadin-client-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 6K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-root/8.4.5/vaadin-root-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 40K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-parent/1.1.0/vaadin-parent-1.1.0.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 8K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-shared/8.4.5/vaadin-shared-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 7K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-server/8.4.5/vaadin-server-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 13K from central
[artifact:dependencies] Downloading: org/jsoup/jsoup/1.11.2/jsoup-1.11.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 8K from central
[artifact:dependencies] Downloading: com/vaadin/external/gentyref/1.2.0.vaadin1/gentyref-1.2.0.vaadin1.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 5K from central
[artifact:dependencies] Downloading: com/google/gwt/gwt-elemental/2.8.2/gwt-elemental-2.8.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 1K from central
[artifact:dependencies] Downloading: com/google/gwt/gwt/2.8.2/gwt-2.8.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 9K from central
[artifact:dependencies] Downloading: org/sonatype/oss/oss-parent/4/oss-parent-4.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 4K from central
[artifact:dependencies] Downloading: com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom from repository central at http://repo1.maven.org/maven2
[artifact:dependencies] Error transferring file: Server returned HTTP response code: 501 for URL: http://repo1.maven.org/maven2/com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom
[artifact:dependencies] [WARNING] Unable to get resource 'com.google.web.bindery:requestfactory:pom:2.8.2' from repository central (http://repo1.maven.org/maven2): Error transferring file: Server returned HTTP response code: 501 for URL: http://repo1.maven.org/maven2/com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom
[artifact:dependencies] An error has occurred while processing the Maven artifact tasks.
[artifact:dependencies] Diagnosis:
[artifact:dependencies]
[artifact:dependencies] Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.google.gwt:gwt-elemental:jar': POM 'com.google.web.bindery:requestfactory' not found in repository: Unable to download the artifact from any repository
[artifact:dependencies]
[artifact:dependencies] com.google.web.bindery:requestfactory:pom:2.8.2
[artifact:dependencies]
[artifact:dependencies] from the specified remote repositories:
[artifact:dependencies] central (http://repo1.maven.org/maven2),
[artifact:dependencies] sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots)
[artifact:dependencies]
[artifact:dependencies] for project com.google.web.bindery:requestfactory
[artifact:dependencies] com.google.gwt:gwt-elemental:jar:2.8.2
[artifact:dependencies]
[artifact:dependencies] from the specified remote repositories:
[artifact:dependencies] central (https://repo.maven.apache.org/maven2),
[artifact:dependencies] vaadin-snapshots (https://oss.sonatype.org/content/repositories/vaadin-snapshots/)
[artifact:dependencies]
[artifact:dependencies] Path to dependency:
[artifact:dependencies] 1) com.abc:Test:jar:4.5-SNAPSHOT
[artifact:dependencies] 2) com.vaadin:vaadin-client:jar:8.4.5
[artifact:dependencies]
[artifact:dependencies]
您尝试过手动安装吗?
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
我们遇到了同样的问题,这就是我调试 jar 以找出问题所在的原因。事实证明,您可以通过编辑位于 jar(相对路径)org\apache\maven\project 内的 pom-4.0.0.xml 轻松修复它。只需将网址更改为 https 就可以了。
我正在研究构建旧版本 Thrift 的类似问题。这对我有用。编辑 build.xml
并在 artifact:dependencies
块中添加一个 remoteRepository
。
示例:
<artifact:dependencies filesetId="build-dependency-jars" pomRefId="pom">
<remoteRepository id="mavenCentral" url="https://repo1.maven.org/maven2"/>
</artifact:dependencies>
As you know, starting from 15 January 2020 Maven central repo requires HTTPS-only access. One of our projects is using Ant and Maven Ant Tasks(仅限依赖管理)。是的,我知道它已被弃用,但在旧的 ant 构建中使用 pom.xml 的另一个选项是什么?
如果依赖树包含一个 link 到 pom,Maven Ant 任务似乎有一个错误,它总是会通过 HTTP 访问(尽管本地配置 https://repo.maven.apache.org/maven2)。
关于如何解决该错误的任何想法?
P.S。是的,这是工作配置(即通过 HTTP 工作)和 pom file exists with the correct parameters.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>Test</artifactId>
<version>4.5-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
<version>8.4.5</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
build.xml的一部分
<artifact:dependencies filesetid="maven.classpath">
<pom file="../pom.xml" />
</artifact:dependencies>
部分输出
[artifact:dependencies] Downloading: com/vaadin/vaadin-client/8.4.5/vaadin-client-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 6K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-root/8.4.5/vaadin-root-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 40K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-parent/1.1.0/vaadin-parent-1.1.0.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 8K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-shared/8.4.5/vaadin-shared-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 7K from central
[artifact:dependencies] Downloading: com/vaadin/vaadin-server/8.4.5/vaadin-server-8.4.5.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 13K from central
[artifact:dependencies] Downloading: org/jsoup/jsoup/1.11.2/jsoup-1.11.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 8K from central
[artifact:dependencies] Downloading: com/vaadin/external/gentyref/1.2.0.vaadin1/gentyref-1.2.0.vaadin1.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 5K from central
[artifact:dependencies] Downloading: com/google/gwt/gwt-elemental/2.8.2/gwt-elemental-2.8.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 1K from central
[artifact:dependencies] Downloading: com/google/gwt/gwt/2.8.2/gwt-2.8.2.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 9K from central
[artifact:dependencies] Downloading: org/sonatype/oss/oss-parent/4/oss-parent-4.pom from repository central at https://repo.maven.apache.org/maven2
[artifact:dependencies] Transferring 4K from central
[artifact:dependencies] Downloading: com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom from repository central at http://repo1.maven.org/maven2
[artifact:dependencies] Error transferring file: Server returned HTTP response code: 501 for URL: http://repo1.maven.org/maven2/com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom
[artifact:dependencies] [WARNING] Unable to get resource 'com.google.web.bindery:requestfactory:pom:2.8.2' from repository central (http://repo1.maven.org/maven2): Error transferring file: Server returned HTTP response code: 501 for URL: http://repo1.maven.org/maven2/com/google/web/bindery/requestfactory/2.8.2/requestfactory-2.8.2.pom
[artifact:dependencies] An error has occurred while processing the Maven artifact tasks.
[artifact:dependencies] Diagnosis:
[artifact:dependencies]
[artifact:dependencies] Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.google.gwt:gwt-elemental:jar': POM 'com.google.web.bindery:requestfactory' not found in repository: Unable to download the artifact from any repository
[artifact:dependencies]
[artifact:dependencies] com.google.web.bindery:requestfactory:pom:2.8.2
[artifact:dependencies]
[artifact:dependencies] from the specified remote repositories:
[artifact:dependencies] central (http://repo1.maven.org/maven2),
[artifact:dependencies] sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots)
[artifact:dependencies]
[artifact:dependencies] for project com.google.web.bindery:requestfactory
[artifact:dependencies] com.google.gwt:gwt-elemental:jar:2.8.2
[artifact:dependencies]
[artifact:dependencies] from the specified remote repositories:
[artifact:dependencies] central (https://repo.maven.apache.org/maven2),
[artifact:dependencies] vaadin-snapshots (https://oss.sonatype.org/content/repositories/vaadin-snapshots/)
[artifact:dependencies]
[artifact:dependencies] Path to dependency:
[artifact:dependencies] 1) com.abc:Test:jar:4.5-SNAPSHOT
[artifact:dependencies] 2) com.vaadin:vaadin-client:jar:8.4.5
[artifact:dependencies]
[artifact:dependencies]
您尝试过手动安装吗?
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
我们遇到了同样的问题,这就是我调试 jar 以找出问题所在的原因。事实证明,您可以通过编辑位于 jar(相对路径)org\apache\maven\project 内的 pom-4.0.0.xml 轻松修复它。只需将网址更改为 https 就可以了。
我正在研究构建旧版本 Thrift 的类似问题。这对我有用。编辑 build.xml
并在 artifact:dependencies
块中添加一个 remoteRepository
。
示例:
<artifact:dependencies filesetId="build-dependency-jars" pomRefId="pom">
<remoteRepository id="mavenCentral" url="https://repo1.maven.org/maven2"/>
</artifact:dependencies>