2011-11-04 10 views
5

Chcę raz zbudować plik z ucha, a następnie użyć ant do zmiany niektórych ustawień w pliku application.xml, plikach własności itp.Czy mrówka może zastąpić tekst w plikach w słoiku/kłosie/wojnie?

Czy można to zrobić z mrówką?

[edytuj] Podobnie uznał ten

How do I modify a file in a jar file using ANT?

+1

AFAIK, nie. Zastąp zadanie działa na katalogach. Czy możesz rozpakować, wymienić i ponownie zip? – aishwarya

+0

Czy opcja aktualizacji działa zgodnie z oczekiwaniami? http://stackoverflow.com/questions/12059046/ant-ear-update-without-full-exploding-ear – peater

Odpowiedz

4

Jedynym sposobem, można zmodyfikować plik wewnątrz słoika lub ucha jest użycie zadania <unzip>, użyć zadania <replace> zmodyfikować pola w pliku , a następnie ponownie skasuj plik za pomocą zadania <zip> lub <jar>/<ear>.

Istnieje kilka sposobów, można sobie z tym poradzić bez konieczności rozpakowania i rezip ucha/JAR/pliki War:

  • Preferowaną metodą jest konfiguracja serwera aplikacji, więc może znaleźć swoje właściwości zewnątrz samego ucha. Można również skonfigurować plik application.xml, aby nie używać względnych katalogów podczas określania lokalizacji zamiast podawania lokalizacji z katalogu głównego komputera. Usuwając osadzone informacje o środowisku z ucha, możesz użyć tego samego pliku earfile we wszystkich swoich środowiskach.

  • Niestety, nie możemy tego zrobić i musimy dostarczyć osobne pliki douszne dla każdego środowiska. Używamy Jenkins jako naszego serwera do ciągłej kompilacji. Kiedy Jenkins wykonuje nasze kompilacje, budujemy wiele uszu, po jednym dla każdego środowiska, w tym samym czasie. W ten sposób, gdy przechodzimy z Dev do QA do ETAPU do Produkcji, możemy przynajmniej odnieść się do tego samego numeru kompilacji. Kompilujemy jeden raz, a następnie korzystamy z AntContrib <foreach> task, aby uchwycić plik ear z prawidłowymi ustawieniami pliku właściwości i poprawnym plikiem application.xml. Używamy <filterset> w naszym zadaniu <copy>, aby zmodyfikować właściwości i application.xml podczas budowania ucha.

+0

Dzięki, używamy także jenkins i rozważaliśmy budowę 3 lub 4 plików ucha, ale liczyliśmy na kolejne rozwiązanie. BTW the build pipline plugin jest całkiem niezły. – blank

0

można zrobić coś takiego

<zip destfile="tmp.jar" > 
    <zipfileset src="lib/myjar.jar" excludes="org/example/My*.class" /> 
    <zipfileset dir="bin" includes="org/example/My*.class" /> 
</zip> 
<move file="tmp.jar" tofile="lib/myjar.jar"/> 

W tym przykładzie stworzymy tmp.jar użyciu myjar.jar jako źródła lecz z wyłączeniem wszystkich classees zaczynają Moi katalogu org/np. Następnie dodajemy naszą nową wersję z katalogu bin. Następnie zastępujemy plik JAR naszą nową wersją.

Powiązane problemy