Gradle localPublish POM

Bitte aktiviere JavaScript!
Hallo

ich habe ein Gradle Projekt das mehrere SubProjekte hat

MeinProjekt
-- MeinProjekt-API
-- MeinProjekt-Database
-- MeinProjekt-Dependencies
usw.
usw.

in dem SubProjekt -Dependencies ist ein build.gradle (aktuell leer) und ein reichlich gefülltes pom.xml

ich würde das pom.xml gerne als mavenBOM importieren wie ich es auch mit den spring-boot-dependencies mache
damit meine Tasks und Subprojekte das aber finden muss ich das aber zunächst per local publish "bekannt" machen (so habe ich es zumindest verstanden)

ich bin jetzt bei der Recherche bei MavenAntTasks gelandet
zum einen verstehe ich aber nicht so Recht was Ant damit zu tun hat und zum anderen scheint das aber auch nicht die Lösung zu sein weil es anscheinend veraltet ist

Note: This component is retired. It is no longer maintained.

Wie macht man es richtig?

kleine Nachtrag:
das Projekt dient als "Kern" für mehrere Kundenprojekte
die Kundenprojekte binden den Kern ein und sollen das pom auch als import einbinden damit überall sichergestellt ist das die richtigen dependencies und Versionen benutzt werden

vielen dank
das Wiesel
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)

mvn install:install-file -Dfile=pom.xml -DpomFile=pom.xml


sollte mMn reichen um ein pom lokal zu installieren.
 
kann man das auch aus einem gradle Task heraus machen oder muss man das immer per Terminal/console machen?

sorry für die blöden fragen
ich hatte schon nach aktueller Literatur gefragt

aber da scheint es wohl nichts zu geben
 
ok
hier scheint das Problem gewesen zu sein das ich im pom file etwas zu sehr "aufgeräumt" habe, mit version im pom.xml scheint es zu funktionieren

aber:
gibt es eine Möglichkeit per Gradle die Version in einem pom.xml zu setzen

habe nur gefunden:
Code:
mvn versions:set
aber Maven soll eig nicht benutzt werden
 
die Version hab ich jetzt per regEx gelöst

Java:
def regexVersion = "<PROJEKTNAME.version>.+<\\/PROJEKTNAME.version>"
def newVersion = "<PROJEKTNAME.version>${buildEnv.specificVersion}</PROJEKTNAME.version>"
def pomFile = 'PROJEKTNAME-dependencies/pom.xml'

String newText = readFile(pomFile).replaceAll(regexVersion,newVersion)
writeFile file:pomFile, text: newText
da funktioniert auch
jetzt das nächste Problem
das pom das im Artifactory landet ist leer (bis auf meta daten, also keine dependencies usw.)
mühsam ernährt sich das Eichhörnchen
 
ja im ersten schritt sollten meine subprojekte das finden
jetzt möchte ich das pom file zu artifactory hochladen, damit die Kundenprojekte das POM als mavenBOM importieren können
(damit es so funktioniert wie mit spring-boot-dependencies)

wenn ich aber jetzt ein Kundenprojekt bauen möchte in dem das POM importiert wird findet es die ganze Dependencies nicht
Blick ins Artifactory zeigt mir das POM so:

YAML:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.XXX.YYY</groupId>
  <artifactId>PROJEKTNAME-dependencies</artifactId>
  <version>XXXXX-SNAPSHOT</version>
  <packaging>pom</packaging>
  <dependencyManagement>
    <dependencies/>
  </dependencyManagement>
</project>
in meinem Projekt sind aber zahlreiche Dependencies im POM File definiert

ich hab jetzt natürlich schon die gradle docu bemüht aber die dortigen Sachen verstehe ich nicht so richtig, MavenDeployer etc
 
scheint als wurde eine Lösung gefunden
das Pom.xml wurde "aufgelöst" und komplett in build.gradle übertragen

gradle übernimmt nun den localPublish (zu einem pom) und das deploy zu artifactory funktioniert auch
mal schauen was die Kundenprojekte von dem generierten pom halten
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben