Ho alcuni file su un computer Unix a cui posso accedere dal mio PC Windows con Windows Explorer utilizzando la directory \ host \Come copiare file da una condivisione Unix su una macchina Windows usando formica?
Tuttavia, quando si utilizza un'attività di copia di ant, continua a dire che la directory non esiste. ..
Così, la parte formica è:
<if>
<available file="${unix-dbs-dir}" type="dir" />
<then>
<echo message="${unix-dbs-dir} exists"/>
</then>
<else>
<echo message="${unix-dbs-dir} doesn't exist"/>
</else>
</if>
<copy todir="${dbsDir}" verbose="true">
<fileset dir="${unix-dbs-dir}">
<include name="*.bd"/>
</fileset>
</copy>
l'output di questo è:
15:28:42 [echo] \\hyperion\dbs doesn't exist
15:28:42
15:28:42 BUILD FAILED
15:28:42 ... \\hyperion\dbs does not exist.
Se provo la sa io con un percorso di rete Windows remoto, funziona ...
Qualche idea su come risolvere questo problema? Sembra strano che io possa accedere a \ hyperion \ dbs con il mio Windows Explorer, ma a quanto pare non può ...
L'Unix è un CentOs 6.5, ma immagino che non importi.
Alcune informazioni extra. Ho creato un piccolo script build.xml per copiare un file dalla nostra macchina Unix su una macchina Windows. Se eseguo lo script ant build.xml dalla riga di comando (non avviato come amministratore tra l'altro), allora l'uscita è:
C:\Users\lievenc\TestCopyHyperion>%ANT_HOME%/bin/ant.bat -lib lib
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.
0_45\lib\tools.jar
Buildfile: C:\Users\lievenc\TestCopyHyperion\build.xml
[echo] Load them from directory \\srv-linuxdev\pde\appl\samplenet\dbs
[echo] \\srv-linuxdev\pde\appl\samplenet\dbs exists
[copy] Copying 1 file to C:\Users\lievenc\TestCopyHyperion
[copy] Copying \\srv-linuxdev\pde\appl\samplenet\dbs\apif.d to C:\Users\lievenc\TestCopyHyperion\apif.d
Quando si esegue lo script build.xml da Jenkins, ottengo output seguente:
[workspace] $ cmd.exe /C '"C:\Jenkins\tools\hudson.tasks.Ant_AntInstallation\1.9.4\bin\ant.bat -lib lib && exit %%ERRORLEVEL%%"'
Buildfile: C:\Jenkins\jobs\test-copying-from-hyperion\workspace\build.xml
[echo] Load them from directory \\srv-linuxdev\pde\appl\samplenet\dbs
[echo] \\srv-linuxdev\pde\appl\samplenet\dbs doesn't exist
Non riesco a capire qual è la differenza. cmd.exe deve essere eseguito come qualche altro utente? Sto solo indovinando qui, ma dalla mia riga di comando in Windows, sto eseguendo formica come utente di dominio. Forse questo è diverso da Jenkins?
script di Ant:
<?xml version="1.0"?>
<project basedir="." xmlns:ac="antlib:net.sf.antcontrib">
<!-- antcontrib -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
<echo message="Load them from directory \\srv-linuxdev\pde\appl\samplenet\dbs" />
<if>
<available file="\\srv-linuxdev\pde\appl\samplenet\dbs" type="dir" />
<then>
<echo message="\\srv-linuxdev\pde\appl\samplenet\dbs exists"/>
</then>
<else>
<echo message="\\srv-linuxdev\pde\appl\samplenet\dbs doesn't exist"/>
</else>
</if>
<copy todir="${basedir}" verbose="true">
<fileset dir="\\srv-linuxdev\pde\appl\samplenet\dbs">
<include name="apif.d"/>
</fileset>
</copy>
</project>
hai provato nel formato '// hyperion/dbs'? – deimus
Sì, ci ho provato. Anche provato \\\\ hyperion \\ dbs ... –