web-gelistirme-sc.com

Maven: pom.xml'den dizin yapısı oluşturun

Maven bir pom.xml dosyam var (başka bir projeden kopyalandı ve uyarlandı) ve yeni bir proje için dizin yapısını oluşturmak istiyorum. Bunu hangi komut yapabilir?

Web'de sayısız örnekler bulduğumu, bunun için mvn archetype: create 'nin pom.xml dosyasını ve dizin yapısını nasıl kullanacağını açıkladığımı unutmayın, fakat zaten bir pom.xml dosyam var ve yaratmak istiyorum dizinler, groupId belirtilmeden, komut satırında artifactId vb. 

mvn arketipi: create-from-project ayrıca başka bir pom.xml (?) 'e dayalı bir pom.xml oluşturuyor gibi görünüyor ama ben sadece dizinleri istiyorum. Şimdiden teşekkür ederim!

EDIT: Bunun "büyük bir sorun" olmadığının farkındayım çünkü dizinleri manuel olarak oluşturabiliyorum :) Bunu zaten çok defa yaptım ve her zaman bir akıllı yolunun olması gerektiğini hissettim. ...

23
lbalazscs

Küçümseyecek ses değil, ama:

mkdir -p src/main/Java
mkdir -p src/main/resources
mkdir -p src/test/Java
mkdir -p src/test/resources

(veya farklı dizinleri değiştirmekten çekinmeyin).

Yeni bir pom dosyası oluşturmadan sizin için bu yapıyı yaratacak herhangi bir maven komutunu bilmiyorum.

10
Matt

Maven'in kendisinin pom'uma bakması ve bundan bir proje/dir yapısı oluşturması gerektiğini belirtmenin bir yolu olduğunu olmalıdır olarak kabul ediyorum. Bunu yapmanın bir yolunu bilmiyorum, ama işte yaptığım şey:

Adım 1 : daha önce yarattığınız pom.xml dosyasını başka bir yere taşıyın (bir sonraki komutu çalıştıracağınız dizinde zaten varsa maven şikayet edecektir)

Adım 2 : komut satırından yeni maven proje dizininizde:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=my.package.path -DartifactId=myartifact

GroupId ve artIactId dosyalarını pom'ınıza uydurmak zorundasınız, ancak bu sizin için temel bir dizin yapısını ve varsayılan bir Java sınıfını ve Birim testini oluşturur.

Adım 3 : pom.xml dosyanızı bu proje dizinine taşıyın/kopyalayın

Adım 4 : bağımlılıkları indirmeye başlamak için mvn clean package veya mvn dependency:tree gibi bazı maven komutlarını çalıştırın.

Not: Bu cevabı ekliyorum çünkü önceki cevapların bazıları mvn archetype:create kullanılmasını önermektedir, ancak maven web sitesine göre bu amaç generate kullanmak yerine kullanımdan kaldırılmıştır. Ve bunun nasıl bir IDE veya IDE eklentisinden bağımsız olarak yapıldığını göstermek istedim.

15
quux00

Bana öyle geliyor ki, küçük bir problemden büyük bir problem çıkarıyorsunuz.

mvn archetype:create-from-project ... komutunu kullanmayı denerdim ve sonra oluşturulan POM dosyasını orijinali ile değiştirdim.

Peter Lawrey'in önerdiği gibi, bir çok modern IDE Maven proje yapısı oluşturabilir.

2
Stephen C

Matt'in cevabına Analog bu satırlar, Microsoft Windows işletim sisteminde varsayılan maven klasör yapısını yaratacaktır. Onları pom.xml dosyanızın bulunduğu dizinden çalıştırın:

mkdir -p src/main/Java
mkdir -p src/main/resources
mkdir -p src/test/Java
mkdir -p src/test/resources

Bunun için neden emir emri olmadığını merak ediyorum. Yukarıdaki mkdir komutlarını çalıştırabilir veya bir başka deyişle quickstart yerine bir arketip kullanabilirsiniz. Kutudaki klasör yapısı zaten var.

2
Stimpson Cat

Maven Build Helper eklentisini kullanın . Kullanımı oldukça basittir. Pompanızın eklentileri bölümünde yapılandırın ve uygun mvn hedeflerini çağırın.

Belgelerden:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.10</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
0
pavakah

Bu tek astarı kullanıyorum:

touch pom.xml && mkdir -p src/main/Java && mkdir -p src/main/resources && mkdir -p src/test/Java && mkdir -p src/test/resources

Ayrıca boş bir pom.xml oluşturur. Hızlı erişim için notlarıma yazdım. Bunun yanında benzer @Matt cevap.

0
Olaf

Komut satırını açın, dizini pom.xml ile klasöre değiştirin
ve bunu CMD'ye yapıştırın:

echo This will create all required folders for maven project.
echo creating  Application\Library sources
MD "src\main\Java"
echo creating  Application\Library resources
MD "src\main\resources"
echo creating  Resource filter files
MD "src\main\filters"
echo creating  Web application sources
MD "src\main\webapp"
echo creating  Test sources
MD "src\test\Java"
echo creating  Test resources
MD "src\test\resources"
echo creating  Test resource filter files
MD "src\test\filters"
echo creating  Integration Tests (primarily for plugins)
MD "src\it"
echo creating  Assembly descriptors
MD "src\Assembly"
echo creating  Site
MD "src\site"
0
user648026

Maven hızlı başlangıç ​​arketipini kullanarak sizin için üretebilir: 

mvn archetype:generate \
    -DgroupId=com.mydomain \
    -DartifactId=my-project \
    -DarchetypeArtifactId=maven-archetype-quickstart

Ardından, mevcut pom.xml dosyanızı kopyalayın ve oluşturulan pom.xml ile aynı dizine yapıştırın.

0
cosbor11