Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: vikitus - 12.03.13 - klo:11.16
-
Halutaan:
1. Tutkia nykyisen sijainnin alahakemistot
2. Mikäli alahakemisto sisältää pom.xml-tiedoston niin käännetään.
Purkasin tämän kahteen osaan, joista molemmat toimivia, mutta nyt ongelma kuinka saada ne yhdistettyä.
kohta 1.
find . -maxdepth 1 -type d -exec echo {} \;
kohta 2.
(cd $subdir_which_may_contain_pom && if [ -f 'pom.xml' ]; then mvn clean install; fi)
Eli tuo ykköskohdan tuloste pitäisi jollain tavalla saada muuttujaan subdir_which_may_contain_pom.
Onko tässä edes mahdollista välittää muuttujia? Onko tämä järkevä lähestymistapa?
-
Jollet alaspäinyhteensopivuudesta piittaa, Bashkin tukee nykyään Zsh-tyylistä jokerimerkkirekursiota:
for f in **/pom.xml; do
# tee mitä ikinä haluatkin pom.xml-tiedostolle
done
Mutta jos sinun täytyy todella mennä kyseiseen alikansioon, joudut pätkimään $f-muuttujaa:
for f in **/pom.xml; do
echo ${f%/pom.xml}
done
(Tulostaa kaikki niiden kansioiden nimet, joista löytyy pom.xml.)
Sama findilla ilman **-rekursiota:
for f in $( find . -name pom.xml ); do
echo ${f%/pom.xml}
done
-
Halutaan:
1. Tutkia nykyisen sijainnin alahakemistot
2. Mikäli alahakemisto sisältää pom.xml-tiedoston niin käännetään.
Purkasin tämän kahteen osaan, joista molemmat toimivia, mutta nyt ongelma kuinka saada ne yhdistettyä.
kohta 1.
find . -maxdepth 1 -type d -exec echo {} \;
kohta 2.
(cd $subdir_which_may_contain_pom && if [ -f 'pom.xml' ]; then mvn clean install; fi)
Eli tuo ykköskohdan tuloste pitäisi jollain tavalla saada muuttujaan subdir_which_may_contain_pom.
Onko tässä edes mahdollista välittää muuttujia? Onko tämä järkevä lähestymistapa?
Tämän pystyy tekemään suoraan maven:llakin. Katso dokumentaatiota "modules" kohdasta.
-
Tämän pystyy tekemään suoraan maven:llakin. Katso dokumentaatiota "modules" kohdasta.
Kyseisessä tapauksessa maven-moduuleilla ei ole keskinäisiä riippuvuussuhteita toisiinsa.
-
Kiitos SuperOscar!
En tiennyt noista asterikseista. Päädyin sinun ja kaverin avustamana seuraavaan...
for a in `ls -1tr **/pom.xml`;do b=`dirname $a`; (cd $b; mvn install;) done