Estamos usando o Maven para um grande processo de compilação (> 100 módulos). Temos armazenado nossas dependências externas no controle de origem e usadas para atualizar um repositório local.
No entanto, estamos prontos para migrar para um repositório local que pode armazenar em cache central, para que não tenhamos que fazer o download proativo de todos os terceiros (mas ainda podemos ter um repositório local). Além disso, queremos publicar nossos artefatos de construção internos a partir de uma construção noturna, para que os desenvolvedores não precisem construir o mundo.
Estamos considerando o Nexus e o Artifactory. Quais são as razões para preferir um ao outro? Existem outros que devemos considerar?
maven-2
nexus
artifactory
John Stauffer
fonte
fonte
Respostas:
Não sei sobre o Artifactory, mas aqui estão meus motivos para usar o Nexus:
fonte
Tenho certeza de que se você falar apenas sobre o armazenamento de binários de "
mvn deploy
" ambos, tudo bem.Usamos o Artifactory extensivamente com todas as atualizações ao longo do caminho. Muitos projetos, vários instantâneos implantados e repositórios externos com proxy. Nem um único problema. Acho difícil explicar como outras pessoas enfrentam problemas com seu banco de dados, indexação ou qualquer outra coisa. Nada disso aconteceu conosco. Além disso, o Artifactory permite armazenar dados em um disco e usar apenas um banco de dados para armazenar metadados, é bastante flexível ( veja mais aqui ).
O que torna esses aplicativos muito diferentes é sua abordagem para a integração com outras ferramentas e tecnologias de construção.
O Nexus e o Sonatype estão praticamente bloqueados no Maven e no m2eclipse. Eles ignoram qualquer outra coisa e só recentemente começaram a trabalhar em sua própria integração proprietária do Hudson (consulte o webinar do Maven 3 ).EDIT: isso não é mais verdade a partir de 2017 O Nexus oferece um suporte muito maior a outras ferramentas de compilação Fim da ediçãoO Artifactory fornece uma incrível integração com Hudson, TeamCity e Bamboo e suporte para Gradle / Ivy . Portanto, enquanto o Nexus não oferece nada quando você sai da "zona de conforto" do Sonatype (Maven, m2eclipse), o Artifactory abraça e colabora com todas as principais ferramentas de criação.
De fato, ser capaz de implantar artefatos de construção do Hudson, quando a tarefa terminar, e não "
mvn deploy
" é uma enorme diferença: o plug-in Artifactory Hudson faz uma implantação atômica de todos os artefatos de uma só vez , apenas quando uma tarefa de construção é concluída com êxito. "mvn deploy
" é executado após cada módulo e pode implantar um conjunto parcial de artefatos se um trabalho de construção falhar no meio. A implantação do Maven na conclusão do módulo e não de um servidor de construção na conclusão da tarefa é realmente uma coisa ruim a se fazer.Como você vê, o Artifactory pensa "fora da caixa", enquanto o Nexus pensa "dentro da caixa" e se importa apenas com os artefatos Maven e Maven.
Outra coisa que torna o Artifactory mais acessível é a solução Artifactory Online baseada em nuvem . Por cerca de US $ 80 por mês, você tem sua própria instância Artifactory, sem necessidade de dedicar nenhum servidor a ela.
O Artifactory possui uma API REST simples e direta , não sabe como funciona para o Nexus. O Edit Nexus também possui uma API REST que você também pode usar com facilidade.
Resumindo, para o armazenamento básico de artefatos do Maven, acho que ambos estão bem.
Porém, embora o Nexus deixe de existir estritamente um "gerenciador de repositório Maven", o Artifactory continua, sendo um "armazenamento de binários" geral para binários de qualquer tipo, de qualquer ferramenta de criação e servidor de IC.fonte
Suportes Artifactory ambos os arquivos do sistema e infra-estruturas de armazenamento de dados. O armazenamento é baseado em soma de verificação e binários idênticos são armazenados apenas uma vez, não importa quantas vezes eles apareçam no repositório, o que torna o Artifactory mais eficiente em termos de armazenamento. Mover e copiar também são muito baratos devido a essa arquitetura (no Nexus, não há REST para mover / copiar - você precisa mover coisas no sistema de arquivos e executar ações corretivas no repositório para informar que o conteúdo foi alterado).
Outro diferencial importante é que o Artifactory possui integração exclusiva com o Hudson e o TeamCity para capturar informações sobre artefatos implementados, dependências resolvidas e dados do ambiente associados às execuções de compilação, o que fornece rastreabilidade total da compilação.
fonte
O artefato armazena os artefatos em um banco de dados, o que significa que, se algo der errado, todos os seus artefatos desaparecerão. O Nexus usa um arquivo simples para seus preciosos artefatos, para que você não precise se preocupar com a perda de todos eles.
fonte
Se você precisar dos recursos "Pro" de qualquer um (por exemplo, repositórios de teste, promoção de artefatos, NuGet), precisará considerar os diferentes modelos de preços, exibidos em seus sites.
Em suma:
Não importa quantos usuários você tenha, o Nexus Pro oferece um serviço de suporte que é amplamente equivalente ao "Silver Value Pack" de US $ 7.450 / ano da Artifactory.
7.450 dólares / ano comprarão aproximadamente 67 assentos Nexus Pro (1-50 a 108 dólares, o restante a 120 dólares).
Somente com preço e suporte, o Nexus Pro faz sentido até chegar a 67 usuários, quando o Artifactory se torna a opção mais barata.
Se você está fazendo todo o suporte internamente; no entanto, esse ponto mágico é de cerca de 23 usuários (a oferta de suporte mais básica da Artifactory é de US $ 2.750 / ano).
fonte
Eu fiz algumas pesquisas recentemente sobre o Artifactory 2 e o Nexus 1.3. Vou listar aqui as principais diferenças que encontrei:
A comparação mais completa: http://binary-repositories-comparison.github.io/
fonte
Você deve usar o Artifactory Sua versão mais recente foi um verdadeiro salto. Você pode fazer backup incremental de seus repositórios, o que significa que você pode ter todos os seus artefatos salvos e mantidos. Ele tem uma interface da Web fácil de usar e é muito fácil de configurar. fora sua nova versão 2.0
fonte
Do ponto de vista dos alunos, observo algumas diferenças específicas entre os dois.
fonte
À parte política / religião, o licenciamento faz a diferença para algumas organizações.
O Nexus agora é
GPLAGPLv3e agora Eclipse Public License (EPL) .Artifactory é LGPLv3
licenciado pela Apache apartir da versão 2.1 do produto.Você também pode considerar o Archiva , apenas para fins de comparação. É o Apache 2.0 licenciado.
fonte
Vejo que o uso do Nexus está aumentando, enquanto o uso artístico é geralmente estável.
A foto é tirada daqui http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
Também há comparação de matrizes http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
fonte
O Artifactory e o Nexus têm um conjunto de recursos mais ou menos semelhantes, mas o suporte ao LDAP do Artifactory o torna mais atraente em relação ao Nexus. Embora o Nexus também tenha suporte LDAP, mas na versão paga :-(
fonte
Hmmm ... minha experiência com artefatos é horrível ... mas sou um novato em relação a isso, então leve-o com um pouco de sal. Minha queixa geral é que os arquivos jar carregados recentemente no Artifactory não parecem ser indexados imediatamente - como por horas - e não parece haver uma boa maneira de forçá-lo. Eu tentei várias coisas que pareciam ter funcionado, mas não funcionaram. Eu tenho trabalhado com m2eclipse, adicionando dependências a um projeto que estou convertendo do ant. Quando tento adicionar um jarro que acabei de adicionar ao artefato, espero que ele apareça como uma opção no seletor, mas não aparece.
um colega de trabalho me disse que eles instalaram o nexus e até agora eles gostam ... mas ainda não posso atestar. Estou prestes a instalar isso em uma caixa Linux assim que a TI puder me encontrar.
fonte