我有一堆要使用ant更新和构建的svn项目。目前我有一个顺序方法:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<activity android:name=".acilisbir">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<activity android:name=".Ucretsiz">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activityucretsiz" />
</intent-filter>
</activity>
<activity android:name=".AnaEkran">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activityanaekran" />
</intent-filter>
</activity>
<activity android:name=".Login">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activitylogin" />
</intent-filter>
</activity>
<activity android:name=".Arsiv">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activityarsiv" />
</intent-filter>
</activity>
<activity android:name=".Inputlar" />
<activity android:name=".Register" />
<activity android:name=".Buy" />
<activity android:name=".ucretli" />
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ca-app-pub-3384720584226622~3587918385]" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity" />
<activity
android:name=".tabdene"
android:label="@string/title_activity_tabdene"
android:theme="@style/AppTheme.NoActionBar"></activity>
<activity android:name=".testtab1" />
</application>
现在,我想并行(或在后台)运行ant构建,以便find命令可以继续进行而不会被ant调用阻塞。我已经读过有关用'&'在bash中进行分叉的信息,但无法弄清楚在我的情况下如何正确使用它。
感谢帮助!
答案 0 :(得分:0)
您可以将它们置于for循环中,在后台开始每次迭代
for f in $(find /opt/src/ -path "*/trunk/build.xml") do
...
...
done &
答案 1 :(得分:0)
经过一段时间的摸索,我得到了以下解决方案:
for f in $(find /opt/src/ -path "*/trunk/build.xml"); do
svn update $(dirname $f);
konsole --noclose --nofork -e ``ant -f $f`` &;
done
svn更新是串行运行的,而ant是并行构建的。这意味着,一旦某个目录的svn更新完成,将在单独的控制台(此处为kde的终端应用)窗口中启动ant构建。 并行开始许多svn更新会导致我的环境中出现网络错误,因此我如上所述更改了行为。