ich ein Java-Projekt, die ich in gradle aufbauen will und die Quelle ist in der folgenden Struktur,gehören ua eine Datei von einem bestimmten Quellordner in Gradle
src
|
+-main
| |
| +-java
| |
| +-package
| |
| +- Utils.java
| +- Other.java
| +- Files.java
| +- Folders.java
+-awesome
|
+-java
|
+-package
|
+- Utils.java
Nun würde Ich mag die Dateien erstellen aus dem sourceSet src/main/java
aber mit dem Utils.java
in src/awesome/java
statt aus dem main
Quellsatz.
Ich habe folgende Möglichkeiten versucht (erfolglos):
1.e Geben Sie den vollständigen Dateipfad in exclude
:
sourceSets {
main {
java {
srcDir "src/awesome/java"
exclude "${projectDir}/src/main/java/package/Utils.java"
}
}
}
Output: error: duplicate class package.Utils
den vollständigen Dateipfad wie das Geben Sieht nicht funktioniert im Ausschlussmuster.
2. Mit 2 Java-Verschlüsse:
sourceSets {
main {
java {
exclude "package/Utils.java"
}
java {
srcDir "src/awesome/java"
}
}
}
Aber diese entfernt die Utils.java
Klasse von beiden Quellen-Standorte.
Ist es möglich, eine einzelne Quelldatei von einem anderen Ort in Gradle bereitzustellen?
Hinweis: Ich kann die Utils.java
Klasse nicht allein kompilieren, da es Abhängigkeiten mit den anderen Klassen hat. (Ich weiß, es ist schlecht, keine Notwendigkeit, es einzureiben).
Auch das Kopieren der Datei in die Position main/java/package
ist nicht möglich, da dies das SCM verschmutzen könnte.
Danke ... Das würde sehr gut funktionieren, obwohl ich auch in der Lage war, die erforderliche Datei mit Schließungen auszuschließen, wie in meiner eigenen Antwort erwähnt. Welcher ist Ihrer Meinung nach ein besserer Ansatz? – Codebender
Wenn deins in Ihrer IDE funktioniert, würde ich das verwenden, da es keine Kopie erfordert. Ich habe das Gefühl, dass eclipse/intellij das nicht unterstützen wird, so dass es zu Konflikten mit dem, was grddle baut und was eclipse/intellij gibt –