2009-07-23 5 views

Répondre

2

write your custom ant task, est simple comme écrire une classe

+0

il y a un petit problème avec cette approche. L'hôte que vous utilisez pour créer votre service peut être différent de l'hôte sur lequel votre service sera exécuté ... ai-je raison? @dfa –

-1

Je n'entendu parler d'un tel bien, je pense donc que vous devez écrire votre tâche personnalisée.

Manu

0

La machine virtuelle Java ne fonctionne pas fournissez une telle propriété et vous ne pouvez pas non plus créer une tâche personnalisée. Vous pouvez effectuer l'une des opérations suivantes:

  1. Ecrivez une classe Java qui imprime le nombre de processeurs sur la sortie standard. Utilisez la tâche Java avec l'attribut outputproperty pour définir la valeur d'une propriété à utiliser dans ant.
  2. Si vous ne construisez qu'une seule plateforme, utilisez la tâche exec pour appeler quelque chose de natif qui imprime le nombre de processeurs sur la sortie standard. Comme ci-dessus, utilisez l'attribut outputproperty pour définir la valeur d'une propriété à utiliser dans ant.
+0

Runtime.getRuntime() availableProcessors() est. fourni par la machine virtuelle Java – dfa

+1

Un appel de méthode n'est pas une propriété, par conséquent vous avez besoin de code pour y accéder. –

3

This post by Ilia Chemodanov explique deux solutions bien.

Si vous ne voulez pas compiler et importer une classe Java, vous pouvez le faire en fourmi pur: (si elle est assez hacky)

<target name="get-cores"> 
    <property environment="env"/> 
    <!-- support for Windows --> 
    <condition property="cores.count" value="${env.NUMBER_OF_PROCESSORS}"> 
     <os family="windows" /> 
    </condition> 
    <!-- support for Linux and Solaris (package SUNWgnu-coreutils is required) --> 
    <exec executable="nproc" outputproperty="cores.count" os="Linux,SunOS,Solaris"> 
     <arg value="--all"/> 
    </exec> 
    <!-- support for Mac OS X --> 
    <exec executable="sysctl" outputproperty="cores.count" os="Mac OS X"> 
     <arg value="-n"/> 
     <arg value="hw.ncpu"/> 
    </exec> 
    <echo message="Number of cores: ${cores.count}"/> 
</target> 
Questions connexes