Java 从Maven Ant任务迁移到Maven工件解析器Ant任务
上周,我们的项目停止了工作,因为maven ant任务似乎正在使用Java 从Maven Ant任务迁移到Maven工件解析器Ant任务,java,ant,maven-3,maven-ant-tasks,Java,Ant,Maven 3,Maven Ant Tasks,上周,我们的项目停止了工作,因为maven ant任务似乎正在使用http而不是https调用maven central,现在它被强制执行,因此它返回501 我们看到Apache发布了一个新的库,所以我们正在尝试迁移 这是我们的旧文件,用于调用内部jaxb库来生成java类。依赖关系是domejaxb,我们使用maven-ant任务解决它 <project name="Main" basedir="../../" xmlns:artifact="antlib:org.apache.mave
http
而不是https
调用maven central,现在它被强制执行,因此它返回501
我们看到Apache发布了一个新的库,所以我们正在尝试迁移
这是我们的旧文件,用于调用内部jaxb库来生成java类。依赖关系是domejaxb
,我们使用maven-ant任务解决它
<project name="Main" basedir="../../" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<!-- ==================== Execution Classpath =========================== -->
<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
<dependency groupId="com.dome" artifactId="dome-jaxb" version="LATEST"/>
</artifact:dependencies>
<path id="Execute.classpath">
<fileset refid="dependency.fileset"/>
<pathelement path="target/classes"/>
</path>
<!-- ==================== Type Target ===================================== -->
<target name="Types" description="Generate type">
<java classname="dome.util.xml.converter.GenerateClassFromXMLConfig" fork="yes">
<sysproperty key="file.encoding" value="UTF-8"/>
<arg value="${basedir}"/>
<arg value="${xmlConfig}"/>
<arg value="${moduleId}"/>
<classpath refid="Execute.classpath"/>
</java>
</target>
</project>
这似乎可行,但它似乎没有使用我的设置.xml
,它位于~/.m2/
(默认位置,读取文档时应该使用),因为我们有一个带有本地库的nexus存储库,但它似乎只检查maven中央存储库,因为错误是:
在central中找不到工件com.dome:dome:jar:4.23.0(https://repo1.maven.org/maven2/)
我在文档中看到,您可以手动设置settings.xml
位置,但没有示例或指示将该配置放置在何处,因此我无法让它工作
如果有人有任何想法/建议,我们将不胜感激。我也观察到了同样的情况,我认为这是maven resolver org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts()中的一个错误。
。只要我需要解决的每个工件都有一个maven-metadata.xml,我就能够避免这个问题。因此,我的解决办法是:
~/.m2/repository
以设置基线
mvn-DupdateReleaseInfo=true
mvn依赖项:脱机和mvn依赖项:get-Dartifact=…
来解析任何其他依赖项
你很可能会受到影响。我还没有看过,但很乐意接受修补程序。似乎手动定义存储库是可行的,但是如果在my settings.xml中定义了存储库,那么是否不需要这样做呢?在Maven Artifact Resolver Ant任务中,任务缺失。您在迁移的代码中做了什么来替换它?请向我们报告错误。是的,我相信这与Jira问题是一样的。我会看看我是否能找到更多的细节。我已经对Jira发表了评论并创建了。谢谢
<project name="Main" basedir="../../" xmlns:resolver="antlib:org.apache.maven.resolver.ant">
<!-- ==================== Execution Classpath =========================== -->
<taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml">
<classpath>
<fileset dir="target" includes="maven-resolver-ant-tasks-*uber.jar"/>
</classpath>
</taskdef>
<path id="Execute.classpath">
<pathelement path="target/classes"/>
</path>
<resolver:resolve>
<dependencies>
<dependency
groupId="com.dome"
artifactId="dome-jaxb"
version="LATEST"
scope="runtime"
/>
</dependencies>
<path refid="Execute.classpath" classpath="runtime"/>
</resolver:resolve>
<!-- ==================== Type Target ===================================== -->
<target name="Types" description="Generate type">
<java classname="dome.util.xml.converter.GenerateClassFromXMLConfig" fork="yes">
<sysproperty key="file.encoding" value="UTF-8"/>
<arg value="${basedir}"/>
<arg value="${xmlConfig}"/>
<arg value="${moduleId}"/>
<classpath refid="Execute.classpath"/>
</java>
</target>
</project>