Git ignoruje cele Maven i Maven


117

Każdy wie, czy można zignorować wszystkie wystąpienia określonego katalogu w strukturze plików zarządzanej przez git.

Chcę wykluczyć wszystkie foldery „docelowe” w projekcie maven z kilkoma modułami podrzędnymi. Wiem, że mogę jawnie wykluczyć każdy z nich w .gitignore najwyższego poziomu, ale naprawdę chciałbym móc tam określić wzorzec, taki jak ** / target / *, aby automatycznie ignorował instancję w podkatalogach?

czy to możliwe?


W jakiej konfiguracji to działa? /.settings/ ignorowałoby tylko „xxx / .settings / *”, a nie „.settings / *” lub „xxx / yyy / .settings / *”: wzorce ignorowania nie wydają się być stosowane rekurencyjnie. Zobacz także stackoverflow.com/questions/971465/… .
VonC

Odpowiedzi:


98

W .gitignorepliku można używać wzorców . Zobacz stronę podręcznika gitignore . Wzorzec */target/*powinien ignorować każdy katalog o nazwie target i wszystko pod nim. Możesz też spróbować */target/**zignorować wszystko, co znajduje się pod celem.


4
Dzięki! Tutaj dla każdego innego, jest zawartość dla .gitignore, aby pominąć zwyczajnych podejrzanych o maven i eclipse. target / * / target / .metadata tar.gz .classpath .project * /. settings /
sgargan

3
W jakiej konfiguracji to działa? /.settings/ ignorowałoby tylko „xxx / .settings / *”, a nie „.settings / *” lub „xxx / yyy / .settings / *”: wzorce ignorowania nie wydają się być stosowane rekurencyjnie. Zobacz także stackoverflow.com/questions/971465/… .
VonC

6
W przypadku projektów wielomodułowych możesz chcieć użyć ** / target / , ale uważaj, aby nie wykluczyć legalnych katalogów „docelowych” w źródłach
Bogdan

1
/target/**działa w \.git\info\excludepliku dobrze.
Abhijeet

Właśnie próbowałem zatwierdzić projekt Java z podpakietem docelowym w jednym z jego modułów. :(
okutane

222

.gitignorePlik w katalogu głównym ma zastosowanie do wszystkich podkatalogów. Mój wygląda tak:

.classpath
.project
.settings/
target/

To jest w wielomodułowym projekcie Maven. Wszystkie podmoduły są importowane jako indywidualne projekty zaćmień przy użyciu programu m2eclipse. Nie mam dalszych .gitignoreplików. Rzeczywiście, jeśli spojrzysz na stronę podręcznika gitignore :

Wzorce odczytywane z .gitignorepliku w tym samym katalogu co ścieżka lub w dowolnym katalogu nadrzędnym

Więc to powinno działać dla Ciebie.


5
To lepsza odpowiedź niż „ / target / ”. Nie wyklucza katalogu, gdziekolwiek się on znajduje w drzewie katalogów. Ale to nie zadziała dla plików (patrz stackoverflow.com/questions/971465/… )
VonC

3
jeśli będziesz kontynuować czytanie, pojawi się komunikat „Te wzorce pasują do lokalizacji pliku .gitignore”. Twoja odpowiedź jest błędna ...
user1387219

Używam tego podejścia i używam „target /”, aby zignorować wszystkie foldery kompilacji maven, jednak należy uważać, aby zignorować kod, który znajduje się w pakietach zawierających folder „docelowy” w swojej ścieżce. (W projekcie z następującymi klasami: src/main/java/org/example/game/archery/bow/LongBow.java i src/main/java/org/example/game/archery/target/Target.java, nie znalazłbyś nic do uderzenia swoim LongBow z taką konfiguracją .gitignore :-))
Cristiano Costantini

4

Jak już wskazano w komentarzach Abhijeeta, możesz po prostu dodać wiersz w stylu:

/target/**

aby wykluczyć plik w \.git\info\folderze.

Następnie, jeśli chcesz pozbyć się tego targetfolderu w swoim zdalnym repozytorium, musisz najpierw ręcznie usunąć ten folder z lokalnego repozytorium, zatwierdzić, a następnie wypchnąć. Dzieje się tak, ponieważ git pokaże zawartość folderu docelowego, tak jak zmodyfikowano na początku.


2

Ignoruję wszystkie klasy znajdujące się w folderze docelowym z gita. dodaj następujący wiersz w otwartym pliku .gitignore:

/ .class

LUB

*/cel/**

U mnie działa idealnie. Spróbuj.


0

dodaj następujące wiersze w gitignore, ze wszystkich niepożądanych plików

/target/
*/target/**
**/META-INF/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.