artefato: install empurra o super pom em vez do POM que eu defino

Eu tenho um POM definido no arquivo Ant, a compilação funciona corretamente, puxando os artefatos corretos do Repositório, no entanto, o artefato: instale tarefas carrega para 'super pom' em vez do pom que eu especificar

Eu uso o seguinte arquivo 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 file="${basedir}/output/${project.name}.jar" 
          pomRefId="jar.pom"/>
  </target>
</project>

Chamandoant build criará o arquivo JAR corretamente, para que o POM esteja sendo configurado corretamente pelo script Ant (pelo menos do ponto de vista da dependência).

No entanto, chamarant install resulta na instalação do JAR no repositório local como super-pom versão 1.0. a instalação de uma segunda vez falha porque uma versão completa (1.0, nenhum SNAPSHOT) já existe no repositório e apenas as versões do SNAPSHOT podem ser substituídas.

Eu configurei o groupId / artifactId / version no POM. Como é que eles não estão sendo apanhados? Tentei configurá-los novamente na tarefa de instalação (pensando que talvez houvesse atributos não documentados para a tarefa), mas essa tarefa não aceita esses atributos.

De fato, os valores corretos serão exibidos antes da instalação, portanto, o POM sabe que é groupId / artifactId / version, mas ainda falha na instalação usando essas configurações.

BTW, se for de alguma ajuda, estou usando o arquivo JAR do maven-ant-tasks 2.1.1, mas a versão do Maven que instalei é a 3.0.2 (não tenho certeza se as tarefas fazem chamadas externas para o Maven Jars ou se o funcionalidade é interna à tarefa ant) Jar).

PS. Tentei colocar as dependências em um arquivo POM externo e isso parece funcionar, opom.xml contém nada além das dependências e do groupId / artifactId / version (igual ao pom na memória definido acima), o artifact: pom muda para:

<artifact:pom id="jar.pom" file="ant-pom.xml"/>

Nada mais muda, masant install agora funciona corretamente. Isso é um bug nas tarefas do maven-form ou há algo que estou perdendo?

Onde estou trabalhando agora, use o Ant e quero evitar fornecer mais arquivos para serem gerenciados como parte do processo de compilação. Se eu precisar, sim, mas prefiro evitá-lo!

questionAnswers(1)

yourAnswerToTheQuestion