我在pom.xml中设置了maven属性.
<properties>
<build.start.date>someValue</build.start.date>
</properties>
Run Code Online (Sandbox Code Playgroud)
现在我有一个ant任务执行以下操作:
<loadresource property="build.start">
<url url="http://someUrl?xpath=/*/id/text()"/>
</loadresource>
<property name="build.start.date" value="${build.start}"/>
<echo>Printing Ant Value ${build.start} </echo>
<echo>Printing Maven Value ${build.start.date}</echo>
Run Code Online (Sandbox Code Playgroud)
这导致:
[echo] Printing Ant Value 2013-03-15_17-53-08
[echo] Printing Maven Value 2013-03-16
Run Code Online (Sandbox Code Playgroud)
但我希望两者都打印:
[echo] Printing Ant Value 2013-03-15_17-53-08
[echo] Printing Maven Value 2013-03-15_17-53-08
I tried <loadresource property="build.start.date">
and
I tried <loadresource property="${build.start.date}">
Run Code Online (Sandbox Code Playgroud)
那么问题是如何在ant任务中设置全局maven属性?
我在Ant文件中定义了一个POM,构建工作正常,从存储库中提取正确的工件,然而,工件:安装任务推送到'super-pom'而不是我指定的pom
我使用以下POM文件
<project name="my-proj" default="build"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<!-- Define the Maven tasks -->
<path id="mvn.classpath"
path="${env.MAVEN_HOME}/lib/maven-ant-tasks-2.1.1.jar" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="antlib:org.apache.maven.artifact.ant"
classpathref="mvn.classpath" />
<target name="set-deps">
<artifact:pom id="jar.pom" packaging="jar"
groupId="com.me" artifactId="my-proj"
version="1.0-SNAPSHOT">
<dependency groupId="commons-logging"
artifactId="commons-logging"
version="1.1.1"/>
</artifact:pom>
<artifact:dependencies filesetId="project.jar.files"
pomRefId="jar.pom"/>
</target>
<target name="compile" depends="set-deps">
<mkdir dir="${basedir}/output/casses"/>
<javac srcdir="${basedir}/src"
destdir="${basedir}/output/classes"
classpathref="project.jar.files" />
</target>
<target name="build" depends="compile">
<jar destfile="output/${project.name}.jar"
basedir="${basedir}/output/classes"/>
</target>
<target name="install" depends="build">
<echo message="Installing JAR file - ${project.name}.jar"/>
<echo message=" groupId - ${jar.pom.groupId}"/>
<echo message="artifactId - ${jar.pom.artifactId}"/>
<echo message=" version - ${jar.pom.version}"/>
<artifact:install …Run Code Online (Sandbox Code Playgroud) 我正在使用maven-antrun-plugin与Ant做一堆工作,最终产生一个zip文件.我想将zip文件部署到我们的maven服务器(Artifactory).maven-antrun-part按预期工作并成功创建zip文件; 但部署失败,并显示以下错误消息:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project projectname: The packaging for this project did not assign a file to the build artifact
我的POM文件如下:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.division</groupId>
<artifactId>projectname</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>com.company.product</groupId>
<artifactId>parentproject</artifactId>
<version>1.0.0</version>
</parent>
<distributionManagement>
<snapshotRepository>
<id>artifactory</id>
<name>artifactory-snapshots</name>
<url>http://localartifactoryserver/artifactory/libs-snapshot-local</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
<dependencies>
<!-- Some dependencies... -->
</dependencies>
<build>
<plugins>
<!-- Compiler plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF8</encoding>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>compile</id> …Run Code Online (Sandbox Code Playgroud) 在我的ant构建id结束时,它调用等效的命令行调用
mvn install:install-file -Dfile=my.jar -DgroupId=com.company.project -DartifactId=my_project -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
这样它就会将新构建的jar添加到另一个项目依赖的maven资源库中.
我尝试使用maven-ant-task并将maven-ant-task jar添加到ant build项目中,并将以下代码添加到build.xml:
<target name ="minstall" depends="jar">
<artifact:pom id="maven_install" file="maven_install.xml" />
<artifact:install file="${out.dir}/my_project.jar">
<pom refid="maven_install"/>
</artifact:install>
</target>
Run Code Online (Sandbox Code Playgroud)
但似乎缺少一些东西,因为它不适合我.首先,我在build.xml(ant构建文件)中得到错误
元素"artifact:pom"的前缀"artifact"未绑定.
我究竟做错了什么.我对蚂蚁比较陌生?
在一个问题上,相关POM文件的目的是什么?我通常不会在这个项目中有一个POM,因为它是一个蚂蚁构建
我正在ant taskMySQL-5.7 服务器上运行一些 SQL,但我不想使用 SSL。我目前正在使用mysql-connector-java-5.1.42.jar连接到 MySQL-5.7 ( v5.7.18-0ubuntu0.16.04.1)
我的 SQL 属性如下所示
<sql
url="jdbc:mysql://mysql.box.lan:3306/mydb?autoReconnect=true&useSSL=false&verifyServerCertificate=false"
userid="my-user"
password="xxx"
driver="com.mysql.jdbc.Driver"
onerror="continue"
showWarnings="false"
delimiter=";"
encoding="UTF-8">
Run Code Online (Sandbox Code Playgroud)
不幸的是,驱动程序似乎并不关心 和/或 的任何组合autoReconnect,useSSL如此verifyServerCertificate处、此处和此处所述。
确切的错误是
2017 年 6 月 22 日星期四 12:20:32 GMT 警告:不建议在没有服务器身份验证的情况下建立 SSL 连接。根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 的要求,如果未设置显式选项,则必须默认建立 SSL 连接。为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。您需要通过设置 useSSL=false 显式禁用 SSL,或者设置 useSSL=true 并提供用于服务器证书验证的信任库。
上周我们的项目停止工作,因为 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>
Run Code Online (Sandbox Code Playgroud)
我下载了项目,生成了uber jar(之后我发现你也可以在 …
我正在使用 Maven Ant Tasks 支持进行开发。当要求存储库下载所需的库时,它还会下载每个库的 javadoc 和源代码。有没有办法只下载库 jars?
实际的 build.xml:
<artifact:dependencies settingsFile="${maven.settingsFile}" pomRefId="projectPom"
filesetId="dependency.fileset"
sourcesFilesetId="sources.dependency.fileset"
javadocFilesetId="javadoc.dependency.fileset"
versionsId="dependency.versions">
<remoteRepository refid="remote.repository" />
</artifact:dependencies>
Run Code Online (Sandbox Code Playgroud)