Pergunta

Eu tenho dois projetos, "appA" e "appB", que cada dependem de um terceiro projeto, "comum".Eu estou no processo de movimentação de formiga para o maven, mas estou tendo alguma dificuldade em descobrir a melhor maneira de fazê-lo no maven.A minha estrutura de pastas parecido com este:

root
+ common  
+ appA  
+ appB  

Eu tenho sido capaz de adicionar um pai pom.xml para a raiz e comuns, appA e appB como módulos deste projecto principal para obter appA e appB para construir, mas não é isso que eu quero, uma raiz pom.xml não é adequado, uma vez que o appA e appB são completamente alheios projetos.

Eu gostaria de appA e appB ser separado maven projetos de que tanto depende o terceiro projeto comum, e irá criar, se necessário, para que eu possa ir para a appA ou appB pasta e digite "mvn pacote" para construir a appA + comum ou appB + comum, respectivamente.Isto é como eu tenho em Formiga, mas pode não ser apropriado paralelo no maven.Qualquer ajuda ou conselhos que estão na direção certa, é muito apreciado :)

Foi útil?

Solução

(...) mas não é isso que eu quero, uma raiz pom.xml não é adequado, uma vez que o appA e appB são completamente alheios projetos.

Então não fazê-lo, não use de agregação, se não quiser e só declarar common como uma dependência no POM de appA e no POM de appB.Algo como isto:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>appA</artifactId>
  <packaging>jar</packaging>
  <version>X-SNAPSHOT</version>
  ...
  <dependencies>
    <dependency>
      <groupId>bar</groupId><!-- at your discretion -->
      <artifactId>common</artifactId>
      <version>Y.Z-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>

As dependências são resolvidas através de um repositório local, então você vai ter que mvn install o common projeto pela primeira vez (e depois de qualquer alteração para torná-los "visível").

Durante o desenvolvimento, uma prática comum é dependente de importação de projetos na sua IDE e configurá-los para que dependem de projeto dentro o espaço de trabalho (vs binário dependências).Isso salva o install passo para fazer alterações visíveis.A maioria das IDEs oferece suporte a essa abordagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top