2016-08-08 8 views
7

Wir haben ein Problem mit mehreren Menschen mit Windows und Maven, und ich vermute, das Problem ist mit der ${path.separator}. Sie erhalten einen Fehler, dass ein Verzeichnis "D: \ basedir \ target/dist" nicht existiert. Dieser Fehler tritt bei Mac-, Linux- und Unix-Systemen nicht auf.

Ich möchte, dies ändern ${project.build.directory}${path.separator}dist, aber auf einem Mac zu sein, wird der Wert von ${path.separator} ist : und nicht /. Jetzt schlägt mein Build auf Macs fehl, weil /Users/david/project/target:dist kein gültiges Verzeichnis ist. Wie kann ich meinen Standard ${path.separator} auf dem Mac auf / setzen?

+0

Verwenden Sie immer Schrägstriche. Für Maven, das auf Windows aufbaut, funktioniert '$ {project.build.directory}/dist' einwandfrei (ich arbeite unter Windows und benutze Forward Slashes jedes Mal ohne Probleme), also hast du vielleicht anderswo ein Problem, nicht Maven. Könntest du ein [mcve] posten? – Tunaki

+2

Verwenden Sie nicht '$ [path.separator}' verwenden Sie einfach ein "/" Darüber hinaus ist ein path.separator das Trennzeichen für mehrere Pfade zum Beispiel in der PATH-Variable, die Sie dort nicht brauchen sollten ... Außerdem path.separator unter Windows ist ";" ... Warum brauchst du einen Zielordner im Ziel? was musst du irgendwie definieren? – khmarbaise

+1

Pfadtrenner ist das, was zwischen Pfaden geht, nicht zwischen Pfadsegmenten, nein? –

Antwort

9

Nur diese schließen ...

Ich wollte ${file.separator} und nicht ${path.separator}. ${path.separator} wird verwendet, um Verzeichnisnamen in Pfaden zu trennen. Unter Windows ist es ; und auf Mac und Unix ist es :.

${file.separator} ist das Verzeichnis Trennzeichen. Unter Windows ist es \ und auf Unix und Macs ist es "/".

Ich war verwirrt, weil auf den älteren System X Macs der Dateitrenner : war. Normalerweise verwende ich einfach /, aber in diesem einen Projekt funktionierte das nicht.