Peut contenir du goudron simple.des artefacts gz?
j'ai des serveurs cloud situés dans des centres de données séparés à travers le monde. Chaque centre de données est séparé des autres.
je suis à la recherche d'un moyen facile de déployer des artéfacts à des groupes individuels de serveurs (qui peuvent être en cours d'exécution de différentes versions du logiciel i.e. un dev, un test, et un cluster de production) dans chacune de ces régions avec facilité et cohérence. Il me semble qu'un serveur d'artefacts est ce dont j'ai besoin parce que je pourrais exécuter un script d'installation sur le cloud serveur, qui tire vers le bas l'artéfact de logiciel correct.
maintenant, je travaille du côté des opérations. Je ne me soucie pas de faire des constructions, ou de gérer des dépendances de construction de logiciel. Je veux simplement un serveur d'artefacts où je peux stocker toutes les différentes versions de mes paquets pour y accéder plus tard. Le truc, c'est que j'ai plusieurs types d'artefacts à stocker.
- scripts Shell
- Python scripts
- Marionnette manifeste
- les fichiers Debian (souvent livrés sous forme de tar.gz fichier de plusieurs debians)
Peuvent Nexus ou Artifactory de gérer tous ces types de paquets, ou devrais-je être à la recherche dans une direction différente? Je ne suis pas opposé à l'ajout de fichiers make à mes projets de scripts shell qui génèrent tout simplement tar.les fichiers gz. Je ne veux juste pas prendre le chemin de la mise en place d'un dépôt d'artefacts, quand finalement, un peu de script, wget, et un serveur apache fonctionnerait très bien.
4 réponses
les Deux Artifactory et Nexus peut gérer n'importe quel type de fichier, comme ils sont tous les deux "Binaire Gestionnaires de Référentiel" .
bien que cela, Nexus peut techniquement stocker n'importe quel fichier, mais ne supporte pas les binaires qui n'adhèrent pas à la disposition du dépôt Maven. Par exemple, ces fichiers ne seront pas indexés et ne pourront pas être récupérés dans les recherches; de plus, si des artéfacts non Maven leur chemin, donc actuellement Artifactory est le seul dépôt qui peut faire usage de cela et permettre des opérations basées sur la version sur des artéfacts (par exemple, télécharger la dernière requête de version)
bien que ces deux outils aient commencé par résoudre un problème dans le Maven monde, le besoin de gestion intelligente binaire a été reconnu dans de nombreux autres domaines, opérations compris ".
Les binaires ont besoin d'un gestionnaire spécialisé, et bien que partage de réseau/SCM/serveurs de fichiers semblent être une option viable au début; ils ne font que n'échelle .
voir Aussi ma réponse à une question similaire pour certains des avantages d'un gestionnaire sur les autres ad-hoc, des solutions.
Oui, vous pouvez télécharger des fichiers non jar. Par exemple:
mvn deploy:deploy-file -DgroupId=org.group.id -DartifactId=artifact-id -Dversion=0.0.0.1-SNAPSHOT -Dpackaging=tar.gz -DrepositoryId=repository-id -Durl=http://url -Dfile=localfile-0.0.0.1-SNAPSHOT.tar.gz
les nouvelles versions de Nexus traiteront certains fichiers comme tar, swf, et d'autres en validant qu'ils sont correctement formés. Cela peut causer un comportement inattendu ou indésirable, cependant.
est la meilleure façon d'y aller... vous seul pouvez dire basé sur votre cas d'utilisation. Des facteurs comme la fréquence à laquelle les artéfacts changent, la latence du réseau, et d'autres peuvent faire ou casser une stratégie.
réfs:
https://stackoverflow.com/a/33311645/32453
http://betterlogic.com/roger/2012/04/mavennexus-upload-tgztar-gz-file /
si vous voulez le faire avec curl, essayez cette approche: https://support.sonatype.com/entries/22189106-How-can-I-programatically-upload-an-artifact-into-Nexus -
Vous pouvez (voir les autres réponses). Vous pouvez également vous y référer par exemple comme ceci (bien qu'un exemple serait bien):
vous pouvez les utiliser comme ce plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache</groupId>
<artifactId>activemq-distro</artifactId>
<version>5.7.0</version>
<type>gz</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>