вы заполняете копию (которую вы тогда не видите)
либо:
fillna
inplace (их не является первичным выигрышем от делать что-то inplac) a_n6[[list_of_fileds]]
является копией в объекте с несколькими dtype), см. здесь: http://pandas.pydata.org /pandas-docs/stable/indexing.html#returning-a-view-versus-a-copyвот более подробное объяснение Pandas: Chained Назначения
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
и Вы выполняете его с
mvn clean compile assembly:single
, гол Компиляции должен быть забит, прежде assembly:single или иначе код Вашего собственного проекта не включен.
Посмотрите больше деталей в комментариях.
<час> Обычно эта цель связывается с фазой разработки для выполнения автоматически. Это гарантирует, что JAR создается при выполнении mvn install
или выполнении развертывания/выпуска.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Беря ответ и переформатирование Unanswered его, мы имеем:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
Затем, я рекомендовал бы делать это естественной частью Вашей сборки, а не чего-то для вызова явно. Для создания этого неотъемлемой частью сборки добавьте этот плагин к Вашему pom.xml
и свяжите его с package
событие жизненного цикла. Однако глюк - то, что необходимо звонить assembly:single
цель при помещении этого в pom.xml при вызове 'assembly:assembly' при выполнении ее вручную из командной строки.
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
[...]
</plugins>
[...]
</build>
</project>
Другая опция, если Вы действительно хотите повторно упаковать другое содержание БАНОК в своем единственном результирующем JAR, плагин блока Знатока . Это распаковывает и затем переупаковывает все в каталог через <unpack>true</unpack>
. Тогда у Вас была бы вторая передача, которая встроила его в один крупный JAR.
Другая опция является плагином OneJar . Это выполняет вышеупомянутые переупаковочные действия все на одном шаге.
По моему мнению, Кен Лю прав. Плагин зависимостей maven позволяет расширять все зависимости, которые затем можно рассматривать как ресурсы. Это позволяет вам включить их в главный артефакт . Использование плагина сборки создает вторичный артефакт, который может быть сложно изменить - в моем случае я хотел добавить пользовательские записи манифеста. Мой помпон оказался таким:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
...
<resources>
<resource>
<directory>${basedir}/target/dependency</directory>
<targetPath>/</targetPath>
</resource>
</resources>
</build>
...
</project>
Вы можете использовать maven-dependency-plugin, но вопрос был в том, как создать исполняемый JAR. Для этого требуется следующее изменение ответа Мэтью Франглена (кстати, использование плагина зависимостей требует больше времени для создания при запуске с чистой цели):
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>${basedir}/target/dependency</directory>
</resource>
</resources>
</build>
Я не буду отвечать прямо на вопрос, как другие уже делали это раньше, но мне действительно интересно, хорошо ли встраивать все зависимости в саму банку проекта.
Я вижу суть (простота развертывания / использования), но это зависит от случая использования вашего poject (и могут быть альтернативы (см. ниже)).
Если вы используете его полностью автономно, почему бы и нет.
Но если вы используете ваш проект в других контекстах (например, в webapp, или уронили в папку, где находятся другие банки), у вас могут быть дубликаты банки в вашем клас-спате (те, что находятся в папке, та, что находится в банке). Может быть, это и не сделка, но я обычно этого избегаю.
Хорошая альтернатива:
Таким образом, имея в конце концов только манифест и "специальный динамический загрузчик классов", вы можете начать свой проект с :
java -jar ProjectMainJar.jar com.stackoverflow.projectName.MainDynamicClassLoaderClass
Должно быть так:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
Распаковка должна быть в фазе generate-resources, потому что, если в фазе package, не будет включена как ресурсы. Попробуйте чистый пакет и вы увидите.