Pergunta

Como exatamente devo especificar a localização de todos os arquivos de propriedades dentro da formiga manifesto?

O meu jar não está funcionando porque ele não pode encontrar o log4j, Primavera, etc propriedades.

Esses arquivos estão todos contidos em uma pasta chamada "server-config" que fica no mesmo nível que o código-fonte, ou seja:

  • META-INF
  • com
  • servidor-config

Essencialmente, eu quero saber o que eu preciso para adicionar a propriedade Class-Path para o frasco estar ciente de todos os arquivos essas propriedades dentro da pasta servidor-config.

Aqui está a minha tarefa atual:

<jar destfile="${root.home}/onejar/build/main/main.jar" basedir="${build.home}">
        <manifest>
            <attribute name="Class-Path" value=".;server-config" />
        </manifest>
        <include name="com/mycompany/client/*"/>
        <include name="com/mycompany/portable/util/*"/>
        <include name="com/mycompany/request/*"/>
        <include name="com/mycompany/model/*"/>
        <include name="com/mycompany/controller/*"/>
        <include name="com/mycompany/helpers/*"/>
        <include name="server-config/*"/>
    </jar>

Eu tentei algumas coisas e nenhum deles estão trabalhando, eu continuo recebendo erros devido ao arquivo não foi encontrado.

Qualquer ajuda seria muito apreciada!

Foi útil?

Solução

Você pode remover toda a parte <manifest... - isso não é o que o Class-Path atributo manifesto faz. É por coisas externas ao JAR.

O <include name="server-config/*"/> linha deve trabalho - se o diretório server-config existe dentro do seu $ {build.home} diretório. Você provavelmente precisará de uma tarefa de copiá-los lá - você mencionar que o código-fonte senta no mesmo nível, mas você não menciona onde estão compilado para .

Um exemplo -

<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
  <fileset dir="${src.dir}/server-config">
    <include name="*"/>
  </fileset>
</copy>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top