上周我们的项目停止工作,因为 maven-ant-task 似乎正在调用 maven central withhttp
而不是https
现在它被强制执行,所以它返回一个501
.
我们看到 Apache 发布了一个新的库Maven Artifact Resolver Ant Tasks,所以我们正在尝试迁移。
这是我们的旧文件,用于调用我们内部的 jaxb 库来生成 java 类。依赖是dome-jaxb
,我们正在用maven-ant-tasks
.
<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>
我下载了项目,生成了 uber jar(后来我发现你也可以在这里下载它),并将它添加到我的 ant/lib (所在maven-ant-task.jar
位置)。
我设法放在一起的新配置文件是这个:
<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>
这似乎可行,但看起来它没有使用 mysettings.xml
位于~/.m2/
(默认位置,应使用读取文档的位置),因为我们有一个带有本地库的 nexus 存储库,但似乎它只是检查maven 中央存储库,因为错误是:
Could not find artifact com.dome:dome:jar:4.23.0 in central (https://repo1.maven.org/maven2/)
我在文档中看到您可以手动设置您的settings.xml
位置,但是没有示例或指示将该配置放在哪里,所以我无法让它工作。
如果有人有任何想法/建议,将不胜感激。