Знаток Для копирования файла банки с локальной папки

На настольной стороне, Моно работы, большие, если Вы принимаете на себя обязательство использовать GTK#. Windows. Реализация форм является все еще небольшим багги (например, TrayIcon не работают), но это проделало длинный путь. Кроме того, GTK# является лучшим инструментарием, чем Windows Forms как есть

На веб-стороне, Моно, реализовали достаточно ASP.NET для выполнения большинства сайтов отлично. Трудность здесь находит хост, который имеет mod_mono, установленный на апаче или выполнении ее самостоятельно, если у Вас есть доступ оболочки к Вашему хосту.

Так или иначе, Моно является большим, и стабильным.

Ключевые вещи помнить при создании кросс-платформенной программы:

  • Использование GTK# вместо Windows. Формы
  • Удостоверяются, чтобы правильно заключить Ваши имена файлов в корпус
  • Использование Path.Separator вместо жесткого кодирования "\", также использовать Environment.NewLine вместо "\n".
  • не используют вызовов P/Invoked для API Win32.
  • не используют Windows Registry.
10
задан Rich Seller 9 September 2009 в 07:41
поделиться

2 ответа

Правильный способ сделать это в Maven - установить его в репозиторий (удаленный или локальный).

Однако есть обстоятельства, что локальный репозиторий является менее предпочтительно. Например, вы запускаете Maven на множестве машин и не хотите устанавливать его вручную.

В этих редких случаях я просто использую антишаблон проверки JAR в системе контроля версий. Я даже не стал устанавливать его в локальный репозиторий, потому что он добавляет еще один шаг и создает еще одну копию JAR. Я просто использую JAR прямо вот так:

            <dependency>
                    <groupId>local</groupId>
                    <artifactId>homeless-jar</artifactId>
                    <version>1.0</version>
                    <scope>system</scope>
                    <systemPath>${basedir}/lib/homeless.jar
                    </systemPath>
            </dependency>

РЕДАКТИРОВАТЬ: $ {basedir} определяется Maven. Это базовый каталог проекта Maven, в котором находится ваш pom.xml. Мой пример был непонятен. См. Этот:

            <dependency>
                    <groupId>any-id</groupId>
                    <artifactId>any-name</artifactId>
                    <version>1.0</version>
                    <scope>system</scope>
                    <systemPath>${basedir}/src/main/lib/homeless.jar
                    </systemPath>
            </dependency>
4
ответ дан 4 December 2019 в 02:50
поделиться

Вы можете установить jar-файл в локальный репозиторий с помощью цели установочного файла плагина установки, затем вы можете объявить зависимость от артефакта как обычно, и это будет автоматически упаковывается в вашу войну плагином war.

Если у вас есть удаленный репозиторий, вы можете использовать цель файла развертывания плагина развертывания для развертывания jar-файла в этом репозитории, тогда ваши товарищи по команде могут получить доступ к jar.

Для информации, существует Jira , позволяющая сделать этот артефакт доступным из центра.


Обновление на основе вашего комментария. Я бы рекомендовал не делать этого, поскольку это не очень хорошая практика, но если вы должны разместить банку в исходной структуре вашего проекта, вы можете поместить ее, скажем, в src / main / lib и использовать плагин antrun, чтобы скопировать его в WEB-INF /lib.

Например:

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <phase>process-resources</phase>
        <configuration>
          <tasks>
            <copy todir="${project.build.directory}/WEB-INF/lib">
              <fileset dir="src/main/lib"/>
            </copy>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
3
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: