Gradle localPublish POM

J

JimWiesel

Mitglied
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
 
T

thecain

Top Contributor

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


sollte mMn reichen um ein pom lokal zu installieren.
 
T

thecain

Top Contributor
Den publish musst du mit maven machen. Dann kannst du das bom aus dem lokalen repo laden
 
J

JimWiesel

Mitglied
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
 
J

JimWiesel

Mitglied
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
 
J

JimWiesel

Mitglied
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
 
J

JimWiesel

Mitglied
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
 
J

JimWiesel

Mitglied
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
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Gradle: Externe Abhängigkeiten einschließen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T IntelliJ, Gradle und Git: gitignore IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
J Bekomme keine lauffähige jar (netbeans/gradle) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
J Install JasperReports on netbeans/gradle Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J NetBeans gradle Projekt, unter neu keine Auswahl JavaFX IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J Gradle add Bom Properties IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
J mavenBOM alternative für Gradle IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
B IDEA IntelliJ Import Gradle: Plötzlich Android Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
M gradle import in eclipse schlägt fehl IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
J Maven in Gradle builden? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
N Gradle Ober und Unterordner zusammengefasst IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
L IDEA IntelliJ Gradle sync failed IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T NetBeans "Gradle Project" in "Web Application" nutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
D Jenkins/Gradle maven-publish Problem IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
T IDEA IntelliJ Gradle und JavaFX IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
B IDEA IntelliJ Gradle Projekt debuggen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
T IDEA IntelliJ Gradle - Erste Schritte IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
M Eclipse lauffähiges Jar auch mit gradle erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D Gradle - DSL und Repositories von Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben